指定されたテキストを持つweb要素がページに存在しないかどうかを確認するテストを作成します。私はページウィッヒのタグは、テキスト「dierdieboeboe」まだcatchブロックはスキップさが含まれて何も存在しないことを絶対的に確信しているが、findelementがNoSuchElementExceptionをスローしていない
public boolean checkOfAanvraagIsOpgevoerd (String titel)
{
String quote = "\"";
String titelMetQuotes = quote + titel +quote;
titelMetQuotes = "dierdieboeboe";
boolean isOpgevoerd=false;
try {
driver.findElement(By.xpath(".//*[@id='listRequests']//h4/a[contains(text(),"+titelMetQuotes+")]"));
isOpgevoerd=true;
} catch (NoSuchElementException NE) {
NE.printStackTrace();
}
return isOpgevoerd;
}
:これは仕事をしているメソッドのコードです。 xpath式のh5のインスタンスh4を置き換えると、期待通りにNoSuchElementExceptionがスローされます。式の包含部分は無視されるようです。
とあらゆる種類の最初の要素を見つけるためにあなたのXPath式で先頭のドットを必要としません。ブラウザのコンソールでXPathを手動で実行すると結果は得られますか? –
この式をFirepathに入力すると、結果は「一致しません」と表示されます(この場合、結果は「一致しません」という結果になります)。$ x( ".//* id = 'listRequests'ノード " – Frank
手動で結果が得られない場合は、タイミングの問題です。セレンによって検出された要素は、おそらく非同期の更新/アクションの後に削除されます。それが事実であるかどうかを確認するために遅延を加えてみてください。そうであれば、テストを同期させるウェイターを追加します。 –