要素が存在するかどうかを確認する方法webdriverを?

原因:UIオートメーションから最近物事を行うには、登録された要素が存在しないので、それはタイムアウトを待つと例外がスローされます場合の動作に関連する要素を実行し、その後、プロセスにwebdriverを問題を使用してページ要素と会ったことがないかもしれませんこれに対処するために存在していない、それは、コードのロジックキャッチを実行し、内試みるがない場合、それに対処する方法をキャッチ/トライを使用することです。

try {
    driver.findElement(By.id("element_a")).click();
} catch (NoSuchElementException e) {
    driver.findElement(By.id("element_b")).click();
}

問題上記のコード:

1、 コード見苦しいです
2、要素が存在しない場合のtry / catchを使用する場合は、待機時間が非常に長いですが、それは約30秒かかりますので、速度が本当に効率に影響を与えています

考えます:

真的只有使用try / catch 唯一可能的方式?

ソリューション:

あなたは使用することができるdriver.findElements( By.id("element") ).size() != 0効率的なコード、のtry / catchを避けるために、要素が存在するかどうかを判断します

// 设置超时等待为0毫秒
driver.manage().timeouts().implicitlyWait(0, TimeUnit.MILLISECONDS);
boolean elementExists;
// 利用seiz()方法来判断元素是否存在
elementExists = driver.findElements( By.id("element_a") ).size() != 0;
if(elementExists){
	driver.findElement(By.id("element_a")).click();
}else{
	driver.findElement(By.id("element_b")).click();
}
// 重新设置默认的超时等待时间
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

おすすめ

転載: blog.csdn.net/weixin_44290425/article/details/90203637