1

在我们的应用程序中,当我将鼠标悬停在菜单项上时,会出现下拉菜单,我想通过单击来选择一个项目。菜单结构如下,

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

菜单屏幕截图

4

2 回答 2

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();
于 2013-08-13T06:05:00.240 回答
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

希望对你有帮助 !!!

干杯...

于 2013-08-12T06:28:44.020 回答