如何在代码中单击另一个网页的按钮后重定向网页?

时间:2018-02-09 17:28:39

标签: php selenium-webdriver codeception webautomation

/**
 * @param int $timeout : timeout period
 * @throws ModuleException
 */
public function waitAjaxLoad($timeout = 10)
{
    $this->webDriverModule->waitForJS('return !!window.jQuery && window.jQuery.active == 0;', $timeout);
    $this->webDriverModule->wait(1);
    $this->dontSeeJsError();
}

/**
 * @param int $timeout : timeout period
 * @throws ModuleException
 */
public function waitPageLoad($timeout = 10)
{
    $this->webDriverModule->waitForJs('return document.readyState == "complete"', $timeout);
    $this->waitAjaxLoad($timeout);
    $this->dontSeeJsError();
}
  

这两个功能对我不起作用。是否有任何解决方法   等到加载重定向页面?

2 个答案:

答案 0 :(得分:0)

你想做什么?这些功能看起来过于复杂。您是在尝试检查错误还是检查预期的页面?我会尝试做其中一个。你知道下一页的预期结果吗?你能这样做吗?

sleep(10);
$I->see('something on the expected page');

无论如何,我查看了你的代码,并且在10秒内我无法弄清楚它正在尝试做什么。对我来说意味着你需要重新考虑因素。

答案 1 :(得分:0)

在调用这些方法之前,

/**
 * @param int $timeout : timeout period
 * @throws ModuleException
 */
public function waitAjaxLoad($timeout = 10)
{
    $this->webDriverModule->waitForJS('return !!window.jQuery && window.jQuery.active == 0;', $timeout);
    $this->webDriverModule->wait(1);
    $this->dontSeeJsError();
}

/**
 * @param int $timeout : timeout period
 * @throws ModuleException
 */
public function waitPageLoad($timeout = 10)
{
    $this->webDriverModule->waitForJs('return document.readyState == "complete"', $timeout);
    $this->waitAjaxLoad($timeout);
    $this->dontSeeJsError();
}

我必须调用$this->switchToNextTab(1);才能转到浏览器中的下一个标签页。

一旦您的测试用例点击了提交按钮并且它使用新的浏览器选项卡路由到另一个页面,那么您必须通过调用$this->switchToNextTab(1);来切换到TopTxt。 移动到下一个标签后,您可以等待加载新页面。