定位元素的等待方法

2022-03-13 16:41:14 字數 1131 閱讀 1294

1、顯式等待:

newwebdriverwait(driver,10).until(

expectedconditions.presenceofelementlocated(by.cssselector("css locator")));

原理:顯式等待,就是明確的要等到某個元素的出現或者是某個元素的可點選等條件,等不到,就一直等,除非在規定的時間之內都沒找到,那麼就跳出exception.(簡而言之:就是直到元素出現才去操作,如果超時則報異常)

改進後方法:

webelementelementid=(newwebdriverwait(driver,10)).until(

new expectedcondition() });

2、隱式等待:

driver.manage().timeouts().implicitlywait(second, timeunit.seconds); //second為等待時間,單位秒

針對driver 每次執行命令的最長執行時間,也可以理解為超時時間。但引數只有時間,這就導致我需要什麼元素出現,我不一定能等到它。

原理:隱式等待,就是在建立driver時,為瀏覽器物件設定乙個等待時間。這個方法是得不到某個元素就等待一段時間,直到拿到某個元素位置。

注:此處設定的等待時間 是針對全域性設定的,webdriver中執行所有命令的超時時間都設定為second秒了

注:在使用隱式等待的時候,實際上瀏覽器會在你自己設定的時間內不斷的重新整理頁面去尋找我們需要的元素

改進後方法:

private boolean iselementpresent(by by) catch (nosuchelementexception e)  

}顯式與隱式的區別:

顯示等待是針對某個元素的等待相當於區域性的,隱身等待是針對driver例項來的相當於是全域性的。一般情況使用顯示等待。

3、執行緒休眠:

thread.sleep(3000); //執行緒停止3秒

使當前執行緒進入等待,thread.sleep();這種等待屬於死等,會強制等待一段時間,很容易讓執行緒掛掉,使程式拋異常,不建議使用,影響自動化執行效率。所以我們要慎用此方法,適用於無法識別控制項的情況下。

定位元素方法

一.定位元素方法 這裡有各種策略用於定位網頁中的元素 locate elements 你可以選擇最適合的方案,selenium提供了一下方法來定義乙個頁面中的元素 find element by id find element by name find element by xpath find e...

Python定位元素的方法

通過id定位目標元素 driver.find element by id i1 通過classname定位目標元素 driver.find element by class name c1 通過name屬性定位目標元素 driver.find element by name n1 通過xpath定位...

WebDriver定位元素的方法

本文主要是講解在web頁面中如何定位元素,這是進行自動化操作的前提。我們主要是要做web自動化,通常乙個web頁面上有輸入框 按鈕 文字鏈結 等元素,自動化測試要做的就是模擬滑鼠和鍵盤來操作這些元素,如單擊 輸入 滑鼠懸停等。操作這些元素的前提是要定位它們,就是找到它們的位置,所以下面可以利用web...