1

我正在尝试在 Selenium IDE 中使用 xpath 选择多个元素。我正在使用的查询是

//*[contains(@id, "address_menu_")]

这适用于第一个元素,但屏幕上有 8 个我试图定位。有什么想法吗?谢谢。

*编辑 - 这是从 Firebug 复制过来的 HTML。我扩展了产品,但将其他产品最小化以节省空间。前四个产品是礼物公告(我正在测试的功能)),后四个是实际产品。为了记录,我试图针对的是 -

<td class="item-address"> <select id="address_menu_71740515" name="address_71740515">

<script type="text/javascript">
<tr id="item_71740515" class=" odd gift_cont">
<th class="sub">
<td class="product">1 x Gift Announcement (Physical)</td>
<td>
<td class="item-address">
<select id="address_menu_71740515" name="address_71740515">
</td>
<td class="price">$0.00</td>
<td class="price">$0.00</td>
</tr>
<tr class="gift_sep">

<script type="text/javascript">
<tr id="item_71740511" class=" gift_cont">
<tr class="gift_sep">

<script type="text/javascript">
<tr id="item_71740507" class=" odd gift_cont">
<tr class="gift_sep">

<script type="text/javascript">
<tr id="item_71740503" class=" gift_cont">
<tr class="gift_sep">

<tr id="item_71740495" class=" odd">

<tr id="item_71740487" class=" ">

<tr id="item_71740499" class=" odd">

<tr id="item_71740491" class=" ">
4

2 回答 2

1

实际上,在 Selenium 中不可能这样做。它的许多命令旨在与精确的一个元素一起工作。虽然你可以用另一种方式来做,但只要澄清你的问题,你到底需要什么?

现在看来我明白你在做什么了。你有selects里面<td>
//*[contains(@id, "address_menu_")][1]只允许从兄弟姐妹中选择,但您的选择显然不是那些。

如果您将所有这些都放在一张表中,那么您可以稍微更改表达式,例如:

//tr[contains(@id, 'item_')][1]/descendant::select 
//tr[contains(@id, 'item_')][2]/descendant::select
于 2012-08-17T22:21:32.557 回答
0

您可以使用:

<tr>
    <td>addSelection</td>
    <td>Locate your select element</td>
    <td>Option you need to select</td>
</tr>
于 2013-04-10T08:21:11.390 回答