2017-08-27 16 views
-6

firefoxドライバでselenium webドライバを使用しています。この要素が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

コメントが拡張された議論やデバッグセッションのためではありませんbelow-ような何かを行うことができます。この会話は[チャットに移動]されています(http://chat.stackoverflow.com/rooms/152940/discussion-on-answer-by-kapil-i-need-about-if-c-if-there-is- a-xpath-or-not)を指定します。それでも問題が解決しない場合は、質問を更新してください。 –

関連する問題