无法使用selenium webdriver单击javascript下拉元素

时间:2013-08-12 05:34:36

标签: selenium selenium-webdriver

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

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

Menu Screen Shot

2 个答案:

答案 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

希望这会对你有帮助!!!

干杯...