意外警报打开导致 Behat/Mink 测试出错

问题描述

在我的 Behat 测试中,我单击页面上的一个链接,该链接会导致出现警报,我想接受/按 OK。我似乎无法处理警报,因为它会导致停止我的测试的错误

 unexpected alert open: {Alert text : Are you sure you want to delete this item?}
   (Session info: chrome=88.0.4324.96): Are you sure you want to delete this item?
 Build info: version: '3.141.59',revision: 'e82be7d358',time: '2018-11-14T08:25:53'
 System info: host: 'b4201ea64648',ip: '172.20.0.4',os.name: 'Linux',os.arch: 'amd64',os.version: '5.4.39-linuxkit',java.version: '1.8.0_275'
 Driver info: driver.version: unkNown (WebDriver\Exception\UnexpecteDalertOpen)

特征文件

  @javascript
  Scenario: ...
    ...
    And I do something

上下文文件

use Paulgibbs\wordpressBehatExtension\Context\RawwordpressContext;
class MyCuteContext extends RawwordpressContext {
    /**
     * @Given /^I do something$/
     */
    public function iDoSomething()
    {
        $page = $this->getSession()->getPage();

        ...

        $page->find(
            "css","tbody > tr:nth-child(1)..."
        )->press();
    }
}

我似乎无法访问 accept_alert 函数,这是我搜索错误时的建议。我尝试添加不同的 $this->getSession()->getDriver()->getWebDriverSession()->accept_alert(); 变体,其他人在线建议,但没有成功。这行代码特别给了我 PHPStorm 中的灰色波浪线(在 getWebDriverSession 部分下方)

“潜在的多态调用。根据作为参数传递的实际类实例代码可能无法运行。”

我在 behat.yml 中的貂皮设置是

    Behat\MinkExtension:
      base_url: http://Nginx/
      # Use goutte (basic PHP browser,super fast) as the default driver.
      default_session: headless
      # Tag features/scenarios with @javascript to use the selenium2 driver.
      javascript_session: selenium2
      browser_name: chrome
      #browser_name: firefox
      selenium2:
        wd_host: http://browser:4444/wd/hub
        #capabilities: { "browserName": "chrome","browser": "chrome",'chrome': {'switches':['--no-sandBox','--headless']}}
      sessions:
        headless:
          goutte:
            guzzle_parameters:
              verify: false

如何在出现的警报上接受/单击“确定”?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)