Selenium webdriver 两个类似的动态下拉列表选择selenium web驱动程序

Selenium webdriver 两个类似的动态下拉列表选择selenium web驱动程序,selenium-webdriver,Selenium Webdriver,我有两个类似的动态下拉列表,我无法从第二个下拉列表中进行选择。以下是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-i

我有两个类似的动态下拉列表,我无法从第二个下拉列表中进行选择。以下是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

    美元-美元
  • 阿富汗-阿富汗

    用于从第一个列表中选择

    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();
    

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

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

    “//li[text()='Afghani-AFN'][2]”


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

    尝试使用类似于此代码的代码

     (//div[@id='list'])[1]
    

    div元素是动态的,所以我不能依赖它们。您是否尝试过在没有第二个下拉选择的情况下进行调试?在您对另一个元素执行操作(在本例中为第二个下拉列表)之前,第一个下拉列表也可能不会关闭。请尝试以下任一操作:1.)尝试为第一个下拉列表选择一个选项,而不选择第二个,然后查看列表是否关闭。2.)尝试更改选择顺序,例如在与第一个下拉菜单交互之前,在第二个下拉菜单上执行操作。第2项有效,那么您可能只需要在之后关注/与另一个元素交互。