在我的应用程序中,当鼠标悬停在菜单项上时,会出现下拉列表,我想通过单击选择项目。菜单结构如下,
Main Menu
Admin Sub menu:
Manage Channels
Manage Users
在selenium webdriver中,我尝试通过提供xpath,linktext,部分链接文本直接点击Manage Channels。但在选项中,它表示无法定位元素。我正在附上一个屏幕截图供参考
driver.findElement(By.linkText("Manage Channels")).click();
driver.findElement(By.xpath("//li/a[contains(., \"Manage Channels\")]")).click();
driver.findElement(By.partialLinkText("Manage Channels"));
答案 0 :(得分:1)
基本上,您必须先将鼠标移动到“菜单项”下拉列表,然后将鼠标移动到要选择的选项,然后单击选项。
对于Ruby,以下是一行代码:
driver.action.movet_to(el1).movet_to(el2).click.perform
我不了解Java,但您可以应用上述逻辑。我尝试使用以下Java代码,看看它是否有效或在需要的地方修改它:
WebElement element1 = driver.findElement(By.linkText("Manage Channels"));
WebElement element2 = driver.findElement(By.xpath("//li/a[contains(., \"Manage Channels\")]"))
Actions action = new Actions(driver);
action.moveToElement(element1).moveToElement(element2).click().build().perform();
答案 1 :(得分:0)
您可以使用以下方法将鼠标悬停在预期的菜单项上:
el = driver.find_element(:id,“some_id”)
driver.action.move_to(EL).perform'
el = driver.find_element(:id,“some_id”)
driver.action.move_to(el,100,100).perform
有关更多指南,请参阅此链接:http://selenium.googlecode.com/svn/trunk/docs/api/rb/Selenium/WebDriver/ActionBuilder.html#move_to-instance_method
希望这会对你有帮助!!!
干杯...