我有这个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);
请帮帮我。感谢
答案 0 :(得分:3)
我已经看到webdriver无法输入隐藏字段,因此可能无法点击隐藏元素。
如果是这种情况,可能的解决方法是执行javascript
((IJavaScriptExecutor)driver).ExecuteScript("$('#theDivInQuestion').click()");
上面的示例需要JQuery,但如果页面上没有JQuery,则可以将其转换为常规java脚本
答案 1 :(得分:0)
菜单位于隐藏的div标签中。
如果该元素被隐藏,则WebDriver无法点击。
答案 2 :(得分:0)
即使菜单被隐藏,您也可以通过以下代码段点击它。
WebElement we = driver.findElement(By.xpath(xpathtotheELEMENT));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", we);