1. 程式人生 > >SELENIUM的三種等待時間

SELENIUM的三種等待時間

為了提高指令碼的穩定性,我們需要在指令碼中增加等待時間

第一種:強制等待

Thread.sleep():固定休眠時間設定,JavaThread類裡提供了休眠方法sleep,匯入包後就能使用

sleep()方法以毫秒為單位  

Thread.sleep(3000);

----執行到此時不管什麼就固定的等待三秒之後再接著執行後面的操作

第二種:隱式等待方法

implicitlyWait()方法比sleep()方法智慧,sleep()方法只能在一個固定的時間等待,而implicitlyWait()可以在一個時間範圍內等待,稱為隱式等待

隱式等待採用全部設定,也就是說,你所有的findElement方法都會隱式等待10s

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

----此方法針對執行指令碼的所有物件,等待10秒

第三種:顯示等待方法

WebDriverWait()

就是明確的要等到某個元素的出現或者是某個元素的可點選等條件,等不到,就一直等,除非在規定的時間之內都沒找到,那麼就跳出Exception

1、500毫秒掃描介面是否出現元素

2、針對單一元素

3、可以設定超時時間

WebDriverWait wait=new WebDriverWait(driver, 10);

WebElement wl = wait.until(new ExpectedCondition<WebElement>() {  

            @Override  

            public WebElement apply(WebDriver d) {  

                return d.findElement(By.cssSelector(".red_box"));  

            }  

        });

----在規定時間內等待 在10秒的範圍內 出現.red_box元素就往下執行,如果10秒過後還沒出現就跳出