1

webdriverでテストボットを行っています。私はボタンをクリックし、新しいウィンドウを開いて、特定のxpathで要素を検索するシナリオを持っていますが、無効にすることができ、このエラーが発生することがあるため、時々そのような要素はありません:org.openqa.selenium .NoSuchElementException。どのように私はそれをバイパスすることができます/それはxpathで要素を見つけていないだけでコードを続行しない場合は、単に新しいウィンドウを閉じるので、ボットを続行できますか? Javaではエラー後にwebdriver/seleniumを続ける方法

答えて

2

List<WebElement> foundElement = driver.findElements(By.xpath("<x-path of your element>")); 
if (foundElement.size() > 0) 
{ 
    // do whatever you want to do in **presence** of element 
} else { 
    // do whatever you want to do in **absence** of element 
} 
+0

ありがとう、完璧に動作します! – Simple

2

あなたは、try/catch文でクリックイベントを囲む必要があり、例外はあなたが迂回しようとしているものであればcatch文チェック内側:

try { 
    driver.findElement(by).click(); 
} catch(Exception e) { 
    if (!(e instanceof NoSuchElementException)) { 
     throw e; 
    } 
} 
は、
+1

例外を再スローするとOPの実行は停止します。彼はその点から続行したい。多分、再投げの代わりに例外を記録/印刷してください。 –

+1

例外は例外がNoSuchElementExceptionのインスタンスでない場合にのみスローされますが、はい、必要なすべての例外を無視できます – valarauko

関連する問題