0

我有两个相似的动态下拉列表,我无法从第二个下拉列表中进行选择。下面是html:

<div id="list" class="x-list">
<div id="list-list" class="x-list-list-ct">
<ul>
<li class="x-item" role="option">US Dollar - USD</li> 
<li class="x-item x-list-selected x-list-item-over" role="option">Afghan Afghani - AFN</li> //<--this is my 1st selection from 1st dropdown list
<li class="x-item" role="option">Albanian Lek - ALL</li>
<li class="x-item" role="option">Algerian Dinar - DZD</li>
<li class="x-item" role="option">Angolan Kwanza - AOA</li>
<li class="x-item" role="option">Argentine Peso - ARS</li>
</ul>
</div>
</div>

<div id="list" class="x-list">
<div id="list-list" class="x-list-list-ct">
<ul>
<li class="x-item x-list-selected x-list-item-over" role="option">US Dollar - USD</li> //<--this is my default hover selection
<li class="x-item" role="option">Afghan Afghani - AFN</li> 
<li class="x-item" role="option">Albanian Lek - ALL</li>
<li class="x-item" role="option">Algerian Dinar - DZD</li>
<li class="x-item" role="option">Angolan Kwanza - AOA</li>
<li class="x-item" role="option">Argentine Peso - ARS</li>
</ul>
</div>
</d

当一个元素被选中或悬停时,类名更改为“x-item x-list-selected x-list-item-over”

对于第一个列表,我使用 driver.findElement(By.xpath("//li[text()[contains(.,'Afghan Afghani - AFN')]]")).click();

当我对第二个列表执行相同操作时,元素被选中但列表没有关闭。

4

3 回答 3

0

试试这些 xpath,第一个 div 使用 1,第二个 div 使用 2

"//div[@id='list'][1]//li[text()='Afghan Afghani - AFN']"

"//li[text()='Afghan Afghani - AFN'][1]"
"//li[text()='Afghan Afghani - AFN'][2]"

我认为当您与页面上的其他元素交互时,列表会自动关闭,例如,尝试向另一个元素(如按钮)发送空格,这样列表就会失去焦点并自行关闭。

于 2012-12-28T19:14:03.167 回答
0

像这样试试

从第一个列表中选择

driver.findElement(By.xpath("//div[1]/div/ul/li[text()='Afghan Afghani - AFN']")).click();

从第二个列表中选择

driver.findElement(By.xpath("//div[2]/div/ul/li[text()='Afghan Afghani - AFN']")).click();
于 2012-12-27T17:37:12.440 回答
0

尝试使用类似这样的代码

 (//div[@id='list'])[1]
于 2015-07-16T08:33:58.050 回答