目录

(十九)wait和sleep

wait( condition, opt_timeout, opt_message )

wait方法一般用来等待页面上某些条件得到满足后才继续执行脚本。比如等待页面上某个弹出框出现,等某个元素可以被定位到之类。

wait方法中可以传入Condition表示一般性条件和WebElementCondition

如果传入的元素级条件被满足,那么wait方法会返回 WebElementPromise,也就是说可以直接返回满足条件的元素。

如果在规定的时间内(也就是第2个参数)没有等到条件被满足,那么该方法会抛出异常。

一般性用法示例:

// 在10s内id是foo的元素被定位到,然后点击之
var button = driver.wait(until.elementLocated(By.id('foo')), 10000);
button.click();

另外wait还可以将执行中的脚本暂停住一段时间,直到第1个参数中的异步操作处理完毕,如下所示

var started = startTestServer();
driver.wait(started, 5 * 1000, 'Server should start within 5 seconds');
driver.get(getServerUrl());

sleep

sleep可以不管任何情况直接将执行中的脚本直接暂停一段时间。

console.log('start')
driver.findElement(By.css('.kls')).click();
// 等待3s
driver.sleep(3000)
driver.quit()

sleep在某些时候非常好用,但是希望大家不要乱用,因为这会拖慢脚本的执行速度。

原始封面

https://images.unsplash.com/photo-1454817481404-7e84c1b73b4a?w=300