我无法运行我的selenium webdriver
测试而未检测到xPath
。我试过了
driver.findElement(By.xpath(".//*[@id='manageEvents']")).click(); for the
下面是HTML
代码:
<head>
<body style="height: 100%; background-color: aliceblue;">
<div class="container-fluid">
<div class="row">
<!-- Left Side Bar-->
<div class="col-md-3 col-xs-12">
<div class="row">
<div class="row leftMenu">
<div class="row leftMenu">
<div class="row leftMenu">
<div id="manageEvents" class="menuBlk">
<i class="fa fa-folder-open" style="font-size:68px;margin-top:20px" />
<h3 style="margin-top:0px">Manage Events</h3>
</div>
</div>
</div>
<!-- Feed -->
<div class="col-md-6 col-xs-12">
<!-- Right Side Bar -->
<div class="col-md-3 col-xs-12">
</div>
</div>
</body>
</html>
任何帮助将不胜感激。 谢谢!
答案 0 :(得分:0)
您可以尝试等到所需元素出现在DOM
中并变为可点击:
WebElement element = (new WebDriverWait(driver, 10)).until(ExpectedConditions.elementToBeClickable(By.xpath(".//*[@id='manageEvents']")));
element.click();
或者如果您的元素位于iframe
内,则需要在搜索元素之前切换到iframe
:
driver.switchTo().frame(driver.findElement(By.tagName("iframe")));
driver.findElement(By.xpath(".//*[@id='manageEvents']")).click();
P.S。如果页面上有多个iframe
,则此代码可能无效,因此请为目标HTML
提供iframe
以获取精确的选择器
答案 1 :(得分:-1)
尽量不要下到树的根部并制作
//*[@id="manageEvents"]