2017-03-05 74 views
1

我无法运行我的selenium webdriver测试其未检测到xPath。我想下面Xpath按ID或类别不起作用

​​

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

您是什么意思'不起作用?你有没有例外,或者什么都没有发生? – Andersson

+0

是的,我得到以下异常:org.openqa.selenium.InvalidSelectorException:无效的选择器:由于以下错误,无法找到具有xpath表达式的元素//*[@id='manageEvents']']: SyntaxError:无法在'Document'上执行'evaluate':字符串'.//*[@id='manageEvents']']'不是有效的XPath表达式。 –

+0

现在是一个例外:org.openqa.selenium.NoSuchElementException:no such element:Unable to locate element:{“method”:“xpath”,“selector”:“.//*[@ id ='manageEvents']” } –

回答

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此代码可能无法正常工作,那么请为目标iframe提供HTML以获得确切的选择器

+0

非常感谢! iframe开关为我工作..! :) –

-1

尽量不要再往树的根,使

//*[@id="manageEvents"] 
+0

它给出了一个例外:org.openqa.selenium.NoSuchElementException:no such element:Unable to locate element:{“method”:“xpath”,“selector”:“.//* [@ id ='manageEvents']“} –

+0

它给出了一个例外:org.openqa.selenium.NoSuchElementException:no such element:Unable to locate element:{”method“:”xpath“,”selector“:”。 // * [@ id ='manageEvents']“} –