我有两个相似的动态下拉列表,我无法从第二个下拉列表中选择。下面是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();
当我对第二个列表执行相同操作时,元素会被选中,但列表不会关闭。
答案 0 :(得分: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();
答案 1 :(得分: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]"
我认为当你与页面上的其他元素交互时,列表会自动关闭,例如,尝试向另一个元素(如按钮)发送一个空格,这样列表就会失去焦点并自行关闭。
答案 2 :(得分:0)
尝试使用类似此代码的内容
(//div[@id='list'])[1]