gpt4 book ai didi

selenium-webdriver - Behat,PhantomJS - 单击链接后等待页面加载?

转载 作者:行者123 更新时间:2023-12-04 07:56:19 24 4
gpt4 key购买 nike

我正在使用 Behat 3 和 PhantomJS 2。目前我有一个这样定义的场景:

@javascript
Scenario: I visit the blog through the Blog & Events menu.
Given I am an anonymous user
And I am on the homepage
And I follow "Link Text"
Then I should be on "/path-to-page"

当我用 Goutte 运行它时,一切正常。当我使用 vanilla Selenium 运行它时,它很好(它启动了一个我可以看到的浏览器)。但是,当我配置 Selenium 将 webdriver 主机指向 PhantomJS 时,它在 上爆炸然后我应该在“/path-to-page” 上声称它仍在 / 上。

如果我添加以下等待步骤:

@javascript
Scenario: I visit the blog through the Blog & Events menu.
Given I am an anonymous user
And I am on the homepage
And I follow "Link Text"
And I wait 4 seconds
Then I should be on "/path-to-page"

然后我的场景顺利通过,一切顺利。

有没有办法让 PhantomJS 在检查当前路径之前等待页面加载?我不想依赖任意超时。我需要一个 headless 解决方案并且 PhantomJS 似乎得到了很好的支持,但是如果我不能做一些简单的事情,比如单击链接并验证加载的页面而不在任何地方添加随机等待步骤,我可能需要重新评估我的决定。

最佳答案

尝试在您的功能上下文中使用这种隐式等待。根据我的经验,它有所帮助。

/**
* @BeforeStep
*/
public function implicitlyWait($event)
{
// Set up implicit timeouts
$driver = $this->getSession()->getDriver()->getWebDriverSession();
$driver->timeouts()->implicit_wait(array("ms" => 10000));
}

关于selenium-webdriver - Behat,PhantomJS - 单击链接后等待页面加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32705253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com