我读了一些文章,他们说implicitWait()在全球范围内运作。但我不确定 我应该在哪里设置它。
这是我的代码:
public function setUp(){
$this->setHost('10.10.60.95');
$this->setPort(4444);
$this->setBrowser('firefox');
$this->setBrowserUrl('http://www.ABC.com');
$this->prepareSession();
}
public function testTitle()
{
$this->url('http://www.ABC.com/');
$this->assertEquals('ABC', $this->title());
}
我应该在哪里添加implicitWait()? setUp函数或testTitle函数?
谢谢你!$这 - >超时() - > implicitWait(10000);
解答:
正如@Arran所说,实际上我应该在大多数情况下将此代码放在setUp()函数中,因为它在全局范围内工作。
public function setUp(){
$this->setHost('10.10.60.95');
$this->setPort(4444);
$this->setBrowser('firefox');
$this->setBrowserUrl('http://www.ABC.com');
$this->prepareSession();
$this->timeouts()->implicitWait(10000);
}
如果要为测试功能设置特殊超时,可以在其中添加此代码。
public function testTitle()
{
$this->url('http://www.ABC.com/');
$this->timeouts()->implicitWait(5000);
$this->assertEquals('ABC', $this->title());
}
答案 0 :(得分:0)
我认为您可以尝试两种选择。虽然不是100%肯定他们,你可以尝试一下。请根据您的需要进行更改。
1.
// wait for at most 10 seconds until the URL is 'http://example.com/account'.
// check again 500ms after the previous attempt.
$driver->wait(10, 500)->until(function ($driver) {
return $driver->getCurrentURL() === 'http://example.com/account';
})
2.
$this->_session->timeouts()->implicit_wait(10000); // 1 sec = 1000