在Python的Selenium自動化測試中,加入等待的方法主要有以下幾種:
time.sleep():這是一種固定等待的方法,寫法是time.sleep(3),表示等待3秒鐘之後再執行後面的操作。這種方法在腳本調試過程中使用比較方便,可以清楚地看到頁面變化,但在實際項目中並不推薦,因為它會影響自動化測試的效率。如果網路狀況良好,可能也需要等待較長時間。
implicitly_wait():這是一種隱式等待的方法,對整個driver周期都有用。在最開始設定一個最長的等待時間,如果在規定的時間內,元素載入完成就執行下一步操作,否則就一直等到時間結束。但是,這種方法可能會存在問題,因為JavaScript都是在body的最後才進行載入的,實際上頁面元素已經載入結束了,我們卻還在等待全部頁面載入結束。因此,設定一個合適的等待時間即可。
WebDriverWait():這是一種顯式等待的方法,比較靈活。通過傳入WebDriver的實例和逾時時間,每隔一段時間就會去輪詢判斷條件是否成立。默認的時間是0.5秒。在webdriverwait中有兩個方法,一個是until,另一個是until_not,這兩個方法都有兩個參數,第一個是method:在等待時間,每隔一段時間調用這個方法,知道返回值不是false就是成了,另一個參數是message:如果逾時,跑出逾時異常,將message傳入異常中。
以上就是加入等待的方法,可以根據實際項目的情況選擇合適的方法。