ID或类的Xpath不起作用

时间:2017-03-05 18:59:11

标签: selenium xpath

我无法运行我的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>

任何帮助将不胜感激。 谢谢!

2 个答案:

答案 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"]
相关问题