2017-03-05 32 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']「} –