首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在中间停止Behat测试来运行元素检查器?

如何在中间停止Behat测试来运行元素检查器?
EN

Stack Overflow用户
提问于 2017-08-01 03:11:23
回答 2查看 1.2K关注 0票数 -1

我正在使用Chrome driver,目前在我做测试的过程中暂停浏览器:

代码语言:javascript
复制
And I ...
And I wait for 3600 seconds
And I ...

给定以下方法:

代码语言:javascript
复制
/**
 * @Given I wait for :number seconds
 */
public function iWaitForSeconds($number) {
  $this->getSession()->wait($number * 1000);
}

因此,我可以自由地使用DevTools在我的测试中的特定位置检查给定页面的对象。

问题是,当打开DevTools时,脚本停止并返回错误:

代码语言:javascript
复制
And I wait for 3600 seconds # CWTest\Context\HelperContext::iWaitForSeconds()
  disconnected: not connected to DevTools
    (Session info: chrome=59.0.3071.115)
    (Driver info: chromedriver=2.31.488774,platform=Mac OS X 10.12.0 x86_64) (WARNING: The server did not provide any stacktrace information)
  Command duration or timeout: 605 milliseconds
  Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
  Driver info: org.openqa.selenium.chrome.ChromeDriver
  Session ID: d429c9a3fdac50fcaed852d9f094d535 (WebDriver\Exception\UnknownError)

有没有更好的方法呢?

EN

回答 2

Stack Overflow用户

发布于 2017-08-01 04:28:39

您可以像这样使用断点:

代码语言:javascript
复制
    /**
     * adds a breakpoints
     * stops the execution until you hit enter in the console
     * @Then /^breakpoint/
     */
    public function breakpoint()
    {
        fwrite(STDOUT, "\033[s    \033[93m[Breakpoint] Press \033[1;93m[RETURN]\033[0;93m to continue...\033[0m");
        while (fgets(STDIN, 1024) == '') {}
        fwrite(STDOUT, "\033[u");
        return;
    }

您也可以将其声明为静态的,并像ClassName::breakpoint();一样调用它

作为替代方案,您可以在IDE中启用调试。

票数 3
EN

Stack Overflow用户

发布于 2021-08-10 10:54:38

为此,我们可以使用睡眠命令。

代码语言:javascript
复制
sleep(500);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45423591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档