【问题标题】:selenium - submenu click not working硒 - 子菜单点击不起作用
【发布时间】:2015-08-27 01:00:31
【问题描述】:

我无法单击子菜单.. 尝试使用不同的 xpath/id .....

下面是html标签,主菜单是Presentations(红色箭头标记),子菜单在div下。

能否请您告诉我如何为此编写 xpath。我想在子菜单中单击假设。

这里的主菜单标签在 div(submenu) 的底部。

还附上了硒代码。请帮帮我....

&lt;div id="presentations" class="ToolbarSubMenu" align="left"parent="presentations_parent"> <a id="hypothetical" class="ToolbarMenu" href="">Hypothetical</a><br/> </div> <a id="presentations_parent" class="ToolbarMenu" href="">Presentations</a>

@Test
public void hypothetical() 
{

    WebElement ic =  driver.findElement(By.id("presentations"));
    Actions act = new Actions(driver);
//  act.moveToElement(ic).click().build().perform();
    //act.moveToElement(ic).doubleClick().build().perform();
act.moveToElement(ic).clickAndHold().release().build().perform();
//ic.click();
    //driver.switchTo().window(myWindowHandle);

//  driver.findElement(By.linkText("Hypothetical")).click();
// driver.findElement(By.xpath("//div[2][@id='presentations']/a[1]")).click();

//Actions act = new Actions(driver);
    try {
        Thread.sleep(3000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

//  WebElement hyp=driver.findElement(By.partialLinkText("Hypothetical"));

WebElement hyp=driver.findElement(By.id("//div[@id='presentations']/a[1]"));
//act.moveToElement(hyp).click().build().perform();


hyp.click();

【问题讨论】:

    标签: selenium


    【解决方案1】:

    使用下面的代码:

     //Click on main menu that will opens the sub Menu list
     WebElement ic =  driver.findElement(By.id("presentations"));
    
     ic.click();
    

    如果您的要求是单击每个单独的子菜单项,请使用以下代码: 点击假设是:

     ic.findElement(By.id("hypothetical")).click();
    

    点击查看个人资料是:

    ic.findElement(By.id("profile")).click();
    
      (Or)
    

    您还可以一次获取所有子菜单项,如下所示:

     //Get all the sub menu list.
     List<WebElement> list = ic.findElements(By.tagName("a"));
     for(int i=0;i < list.size; i++){
         WebElement subMenuElement = list.get(i);
         subMenuElement.click();
     }
    

    【讨论】:

    • 嗨,Saritha,我尝试使用您的代码.. 仍然没有子菜单不可点击。我不明白我必须在这里做什么。这里的子菜单在“div”下,它不是普通的菜单...
    • 你能贴出你的网址吗??
    • 不,它不可共享的 URL。我可以分享 html 的 img
    • 好的,也可以。并且还从浏览器分享菜单的图像,这样我就可以知道是下拉菜单还是其他东西。
    • 你有我昨天发的东西。
    【解决方案2】:
    driver.findElement(By.id("presentations")).click();
    WebElement hyp = driver.findElement(By.id("hypothetical"));
    hyp.click();
    

    【讨论】:

    • 我尝试了 By.id 选项,但没有成功。主菜单是“演示文稿”,位于“div”之外。
    • 虽然这个答案可能是正确且有用的,但最好在其中附上一些解释来解释它如何帮助解决问题。如果有更改(可能不相关)导致它停止工作并且用户需要了解它曾经是如何工作的,这在未来变得特别有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 2020-12-06
    • 1970-01-01
    • 2021-12-03
    相关资源
    最近更新 更多