經過前三篇文章,我們現在可以基本已經可以寫簡單運行步驟了。爲了保證有充足的定位等待時間我們用了sleep方法,確定就是我們每次都要增加這樣的等待方法,並不好用。selenium自帶了兩種等待方法,一種爲顯式等待,一種爲隱式等待。建議用顯式等待。
1.隱式等待
- driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); 設置等待超時時間爲5秒
- driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS);設置頁面加載超時時間爲5秒
具體用法,在運行用例前加上這兩句就可以了。
2.顯式等待:
顯式等待的一些方法:
- //標題是不是“百度一下,你就知道”
new WebDriverWait(driver,5).until(ExpectedConditions.titleIs("百度一下,你就知道"));
2.//標題是不是包含“百度一下”
new WebDriverWait(driver,5).until(ExpectedConditions.titleContains("百度一下"));
3.//判斷該元素是否被加載在DOM中,並不代表該元素一定可見
new WebDriverWait(driver,5).until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id='kw']")));
4.//判斷元素(定位後)是否可見
new WebDriverWait(driver,5).until(ExpectedConditions.visibilityOf(driver.findElement(By.xpath("//*[@id='kw']"))));
5.//判斷元素是否可見(非隱藏,並且元素的寬和高都不等以0)
new WebDriverWait(driver,5).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='kw']")));
WebElement e1 = new WebDriverWait(driver,5).until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id='kw']")));
等待元素加載出來並定位到。
3.系統等待
Thread.Sleep(5000);
如果您覺得文章對您有幫助,那就打賞下作者吧。如果您有問題需要諮詢,或者交流心得。請添加qq羣:829468634。