為了解決網路延遲等導致的載入元素 時間不一致.
**執行的速度像火箭,頁面操作慢的像蝸牛, 為了等下蝸牛必須等會 以達到同步.
當找不到元素的時候, 會等待一段時間,超過了就報 exception
driver.implicitly_wait(10), 在setup 設定 達到全域性等待的效果.
webdriver 提供了 webdriverwait 和 expected_conditions 來實現顯示
webdriverwat(self.driver,10).unitl(expected_conditions.element_to_be_clickable((by.name,「name」)))
查詢元素可見並可操作,超過十秒 報exception.
webdriverwait(self.driver,10).until(expected_conditions.element_to_be_presence_of_element_located((by.id,"id)))
檢視元素是否存在
webdriverwait(self.driver,10).until(expected_conditions.title_contains(「i love you」))
直到 標題 包含 i love you
alert=webdriverwait(self.driver,10).until(expected_conditions.is_alert_presence())
alert_text=alert.text
獲取 alert 物件 , 並儲存text.
總結: unitl 後邊是個判定式 ,當為true 的時候就執行, 所以要靈活應用.
#強制執行等待
think.time(10)
總結:1.顯示和**等待 的區別在於, 顯示需要判斷 才執行, **是全域性等待 實際會浪費實際的,不如顯示靈活
2.顯示和**等待 不要同時 應用
UI自動化 三大等待
下面介紹三大等待 顯示等待 webdriverwait 顯示等待,同樣也是 webdirver 提供的方法。在設定時間內,預設每隔一段時間檢測一次當前頁面元素是否存在,如果超過設定時間檢測不到則丟擲異常。預設檢測頻率為0.5s,預設丟擲異常為 nosuchelementexception 例 fro...
自動化測試的3種等待方式
1 強制等待,硬性等待。time.sleep 暫停 執行,強制等待x秒後繼續執行 2 智慧型等待,隱性等待,driver.implicitly wait 1 啟動瀏覽器的時候設定一次,只能用來等待元素出現 webdriverwait driver timeout 10,poll frequency ...
三種自動化測試模式
什麼是robotframework 先談關鍵字驅動 例如假如我們以測試計算器功能為例,參照官方github上的例子 次談資料驅動 資料驅動引入了乙個非常有效的概念,即 模板 概念,在很多測試場景下,測試人員輸入的操作是有一定重複性的,區別只在於輸入的資料,還是以登陸為例,除了包含正常的測試用例,還需...