2017-02-13 18 views
0

以下のコードを使用して、特定の要素を見つけて、次のようにして抽出します。XPathしかし、いくつかのページでは利用できません。Seleniumの条件付き演算

どうすればよいですか?

FYI以下のコードは失敗しています。

String founded=driver.findElement(By.xpath("//*[contains(text(),'Founded')]//following::dd[1]")).getText(); 
if(founded.isEmpty()) 
{ 
    founded="NA"; 
    System.out.println(founded); 
} 
+0

あなたの質問に何かエラーや例外+スタックトレースを追加してください。あなたが私たちに正確な問題を教えてくれないならば、私たちは推測するしかありません。そして、私の推測では、あなたの問題は次のとおりです。メソッドfindElementは、要素を見つけられないときにNoSuchElementExceptionをスローします(ドキュメントを読んだことから分かるように)。あなたが例外を捕まえて処理しなければならない要素が見つからなかったケースを処理したい場合 –

答えて

0

あなたはWebElementのリストまたは空のリストのいずれかを返す代わりに​​を使用してみてください。次のように空リストを確認してください: -

String founded = ""; 

List<WebElement> list = driver.findElements(By.xpath("//*[contains(text(),'Founded')]//following::dd[1]")); 

if(list.isEmpty() || list.get(0).getText() == null || list.get(0).getText().isEmpty()) 
{ 
    founded = "NA"; 
}else { 
    founded = list.get(0).getText(); 
}  
System.out.println(founded);