2017-08-27 289 views
-6

我正在使用selenium web驅動程序和firefox驅動程序。我必須檢查這個元素是否在使用XPath的頁面中,這樣我才能繼續下一步,但我不知道該怎麼做。檢查XPath是否存在元素

//*[@id='view_container']/form/div[2]/div/div/div/ul/li[1]/div/div[2] 

if (idk what i have to write here) 
{ 
    driver.FindElement(By.XPath("//[@id='view_container']/form/div[2]/div/div/div/ul/li[1]/div/div[2]")); 

    // if we found xpath 
} 
else 
{ 
    // if don't find xpath 
} 

回答

0

您可以使用FindElements並檢查返回的集合中是否有任何內容。這將防止萬一元素不存在

ReadOnlyCollection<IWebElement> elements = driver.FindElements(By.XPath("//[@id='view_container']/form/div[2]/div/div/div/ul/li[1]/div/div[2]")); 
if (elements.Count > 0) 
{ 
    // found  
} 

,並使用元素使用索引elements[0]異常。

0

你可以這樣做如下─

try 
{ 
    if(driver.FindElement(By.XPath("//[@id='view_container']/form/div[2]/div/div/div/ul/li[1]/div/div[2]")).Displayed) 
    { 
    // if we found xpath 
    } 
} 
catch (Exception ex) 
{ 
    // if don't find xpath 
} 
+0

評論不延長討論或調試會話;這個對話已經[轉移到聊天](http://chat.stackoverflow.com/rooms/152940/discussion-on-answer-by-kapil-i-need-about-if-c-if-there-is-一個-的xpath - 或不是)。如果您仍然遇到問題,請更新問題。 –