Selenium 如何定位具有相同id和xpath的元素

Selenium 如何定位具有相同id和xpath的元素,selenium,drop-down-menu,ide,Selenium,Drop Down Menu,Ide,在我的表单中,下拉菜单中的所有选项都具有相同的ID和xpath,我也尝试过给出值。运行测试时,单击菜单按钮并显示列表(此时测试失败),但未获取并返回值。我收到错误“未找到UI活动菜单项”。有人能解决这个问题吗? 选择命令,IDE中的WaitForElementPresent没有帮助。 请查找我用Java编写的Webdriver: //clicked the list button driver.findElement(By.id("ctl00_cphWMContent_eddl

在我的表单中,下拉菜单中的所有选项都具有相同的ID和xpath,我也尝试过给出值。运行测试时,单击菜单按钮并显示列表(此时测试失败),但未获取并返回值。我收到错误“未找到UI活动菜单项”。有人能解决这个问题吗? 选择命令,IDE中的WaitForElementPresent没有帮助。 请查找我用Java编写的Webdriver:

    //clicked the list button
     driver.findElement(By.id("ctl00_cphWMContent_eddlWH_list_button")).click();
    //to select the option
    new Select(driver.findElement(By.xpath("html/body/ul[2]"))).selectByVisibleText("Option1");
    //wait to return the selected   
    Thread.sleep(1000);

xpath不是有限的或确定的属性。一个对象没有一个xpath,所以您声明您的元素具有相同的xpath是对的,也是错的

所有按钮都有相同的xpath(//按钮),但所有按钮都有许多其他xpath,其中一些是唯一的

还有,具有相同属性的元素
HTML ID实际上显示的是无效的HTML,因为w3c说所有HTML ID都必须是唯一的。因此,如果您确实有重复的ID,则会因为HTML无效而引发错误。

在下拉列表中添加HTML。解释你是如何得到它的值以及textbox是如何与问题相关的请发布下拉列表的HTML以及你用来与下拉列表交互的代码。单击id=ctl00\u cphWarehouseMasterContent\u eddlSupplier\u list\u按钮单击id=ui活动菜单项单击id=ctl00\u cphWarehouseMasterContent\u eddlWarehouse\u list\u按钮单击id=ui活动菜单项单击id=ctl00\u cphWarehouseMasterContent\u eddlItem\u列表项单击id=ui活动菜单项运行测试用例时,我得到[错误]元素id=ui活动菜单项未在中找到,请单击id=ui活动菜单项单击。此外,selenium在列表显示时一直处于打开状态,并且没有从菜单中选择值,列表在屏幕中保持打开状态谢谢RobbieWareham@Kavr如果你觉得这是答案,那么请接受