【问题标题】:How to wait until a web page is redirected after clicking a button of another web page in codeception?在codeception中单击另一个网页的按钮后如何等到一个网页被重定向?
【发布时间】:2018-02-09 17:28:39
【问题描述】:
/**
 * @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();
}

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

【问题讨论】:

    标签: php selenium-webdriver codeception webautomation


    【解决方案1】:

    你想做什么?这些功能似乎过于复杂。您是在尝试检查错误还是检查预期页面?我会尝试做一个或另一个。你知道下一页的预期结果吗?你可以这样做吗:

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

    无论如何,我查看了您的代码,但在 10 秒内我无法弄清楚它要做什么。这对我来说意味着你需要重新考虑或其他什么。

    【讨论】:

    • 我发现了问题。在调用这些方法之前,我必须调用 $this->switchToNextTab(1);功能移动到下一个选项卡。因为点击提交后,它会通过在浏览器中打开一个新标签来路由到另一个站点。
    【解决方案2】:

    在调用这些方法之前,

    /**
     * @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); 来切换到下一个选项卡。 移动到下一个标签后,您可以等待新页面被加载。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-09
      • 1970-01-01
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-10
      相关资源
      最近更新 更多