Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
5 ตอบกลับ
46589 มุมมอง

I have seen a few similar questions on this but can't seem to find a solution. According to the XPath syntax here:

https://www.w3schools.com/xml/xpath_syntax.asp

An expression like this should match all buttons with name="action_rfq_send":

//button[@name='action_rfq_send']

However, the Odoo documentation for view inheritance says that the first node found from an xpath expression is the one selected:

http://www.odoo.com/documentation/10.0/reference/views.html#inheritance

Does this mean there is no way to select multiple nodes with one xpath expression in Odoo? If the view I'm extending has 3 buttons with name="action_rfq_send", is there any way to select them all with a single expression?

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

You cannot select all with a single xpath expression. You have to select one by one if more than one button with same name needs to referenced. Like:

<xpath expr="//button[@name='action_rfq_send'][1]" position="after">
</xpath>
<xpath expr="//button[@name='action_rfq_send'][2]" position="after">
</xpath>
อวตาร
ละทิ้ง

odoo xpath nth

คำตอบที่ดีที่สุด

I don't know how to do it with one expression, but you can do this:

<xpath expr="//form/group[1]" ...
<xpath expr="//form/group[2]" ...
<xpath expr="//form/group[3]" ...
อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

In my case using numbers fails.

Just repeat the same expression as many times as you need:
<xpath expr="//button[@name='action_rfq_send']" position="after"></xpath>
<xpath expr="//button[@name='action_rfq_send']" position="after"></xpath>

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

You need to use parentheses around the xpath expression and from there use the index.


expr = "(//button[@name='action_rfq_send'])[1]"

expr = "(//button[@name='action_rfq_send'])[2]"

expr = "(//button[@name='action_rfq_send'])[3]"


อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

The Xpath code will be such as:

<xpath expr="//button[@name='action_rfq_send'][1]" ...............>

<xpath expr="//button[@name='action_rfq_send'][2]" ...............>

<xpath expr="//button[@name='action_rfq_send'][3]" ...............>

อวตาร
ละทิ้ง
Related Posts ตอบกลับ มุมมอง กิจกรรม
2
เม.ย. 24
2531
3
มิ.ย. 23
5744
2
มิ.ย. 23
4692
3
มี.ค. 23
10286
1
มี.ค. 23
2823