【问题标题】:Selenium Webdriver - Element not found Javascript Generated MenuSelenium Webdriver - 找不到元素 Javascript 生成的菜单
【发布时间】:2013-07-26 04:04:40
【问题描述】:

我有这个由 Javascript 生成的菜单。我已经尝试使用 xpath 找到此菜单,但出现错误“NoSuchElemetFound”。我这里的目标是按下 javascript 生成的菜单或执行菜单的命令(就像你点击真正的菜单一样)。

菜单位于隐藏的 div 标签中。

这是这个 javascript 菜单调用的命令:

parent.navFrame.gotoURL('url');

这是我当前不起作用的代码:

WebElement menu = driver.findElement(By.xpath("html/body/span/div[11]/div/div"));
WebElement parentMenu = driver.findElement(By.xpath("html/body/table/tbody/tr/td[6]/a/img"));
Actions builder = new Actions(driver);
builder.moveToElement(parentMenu).moveToElement(menu).click().build().perform();

还有这个

        Actions builder = new Actions(driver);
        ((HasInputDevices) driver).getMouse();
        builder.moveToElement(driver.findElement(By.xpath("html/body/table/tbody/tr/td[6]/a/img"))).build().perform();
        driver.findElement(By.xpath("html/body/table/tbody/tr/td[6]/a/img")).isSelected();
        Thread.sleep(1000L);    
        builder.moveToElement(driver.findElement(By.xpath(".//*[@id='menuItem101']"))).build().perform();
        driver.findElement(By.xpath(".//*[@id='menuItem101']")).click();
        Thread.sleep(1000L);

请帮助我。谢谢

【问题讨论】:

    标签: javascript selenium selenium-webdriver selenium-firefoxdriver


    【解决方案1】:

    我已经看到 webdriver 无法输入隐藏字段,因此可能是您也无法单击隐藏元素。

    如果是这种情况,一个潜在的解决方法是执行 javascript

    ((IJavaScriptExecutor)driver).ExecuteScript("$('#theDivInQuestion').click()");
    

    上面的示例需要 JQuery,但如果 JQuery 在您的页面上不可用,则可以将其转换为常规 java 脚本

    【讨论】:

      【解决方案2】:

      菜单位于隐藏的 div 标签中。

      如果元素是隐藏的,那么 WebDriver 就不能点击它。

      【讨论】:

      • 有什么解决办法吗?
      • @hybrid_18 激活您需要执行的操作以使其可见,或执行一段 JavaScript 来执行此操作。
      【解决方案3】:

      即使菜单被隐藏,也可以通过下面的sn-p来点击。

      WebElement we = driver.findElement(By.xpath(xpathtotheELEMENT));
      JavascriptExecutor executor = (JavascriptExecutor)driver;
      executor.executeScript("arguments[0].click();", we); 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-11-11
        • 2016-07-02
        • 2016-09-07
        • 2017-10-24
        • 1970-01-01
        • 1970-01-01
        • 2016-04-17
        相关资源
        最近更新 更多