Dan*_*ack 5 selenium behat mink selenium-webdriver
使用Selenium2Driver使用Behat和Mink时,有没有办法可靠地等待页面加载?
我继承了一些等待的遗留测试:
Background:
Given I am on "http://test.example.com"
And I wait for "20000"
Given I click on the element with css selector ".button1"
And I wait for "30000"
Given I click on the element with css selector ".button2"
And I wait for "30000"
Given I click on the element with css selector ".button1"
And I wait for "10000"
Run Code Online (Sandbox Code Playgroud)
即只需要这个单一测试需要1分30秒.
我想要做的是有一种通用的方式来等待前一次点击导致页面加载,而不必每次都等待很长的固定时间.
我可以看到等待页面加载的所有建议,都是指检查是否加载了特定的页面元素.
然而,这些测试针对各种遗留网站运行,其中并不总是存在可以检查存在的标准元素,因此我希望使用更通用的方法.
您可以使用javasccript条件的wait方法,如:
/**
* @When /^wait for the page to be loaded$/
*/
public function waitForThePageToBeLoaded()
{
$this->getSession()->wait(10000, "document.readyState === 'complete'");
}
Run Code Online (Sandbox Code Playgroud)
另一个好的做法是有一个等待元素的方法,如果找到元素返回元素对象,否则它将抛出异常.
对于click方法,您可以使用以下内容:
$this->waitForElement("css_selector")->click();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3921 次 |
| 最近记录: |