【问题标题】:Undefined, Undefined in Chrome notification when it's triggered from Selenium从 Selenium 触发时,Chrome 通知中未定义、未定义
【发布时间】:2014-12-19 01:00:53
【问题描述】:

我正在致力于自动化一个用 Python 编写的网站,并在有许多确认通知的地方使用 Angular。我遇到的问题是 Behat 似乎无法识别这些通知,更不用说允许我与它们交互了。

我附上了通知应该是什么样子的屏幕截图,以及 Behat 产生的未定义 - 未定义错误消息。

我的场景:

Then I select the Delete the Media Plan Line Checkbox
And I delete the Media Plan Line
And I select Yes to confirm the deletion
And I select No to confirm the deletion

还有我的背景:

/**
 * @Then /^I select the Delete the Media Plan Line Checkbox$/
 */
public function iDeleteMediaPlanLineCheckbox()
{
    /**
     * @var AddMediaPlan $addMediaPlan
     */
    $addMediaPlan= $this->getPage('AddMediaPlan');
    $addMediaPlan->deleteMediaPlanLineCheckbox();
}

/**
 * @Given /^I delete the Media Plan Line$/
 */
public function iDeleteTheMediaPlanLine()
{
    /**
     * @var AddMediaPlan $addMediaPlan
     */
    $addMediaPlan= $this->getPage('AddMediaPlan');
    $addMediaPlan->deleteMediaPlanLines();
}

public function deleteMediaPlanLineCheckbox ()
{
    $this->getElement('deleteMediaPlanLineArea')->click();
    $this->getSession()->wait(2000);
    $element = $this->getElement('deleteMediaPlanLineCheckbox');
    $this->scrollWindowToElement($element);
    $element->click();
    $this->getSession()->wait(4000);
}

public function deleteMediaPlanLines ()
{
    $this->getSession()->wait(2000);
    $this->getElement('deleteMediaPlanLines')->click();
    $this->getSession()->wait(800000);
}

public function deletePopUpYes ()
{
    $this->getElement('deletePopUpYes')->click();
    $this->getSession()->wait(2000);
}

public function deletePopUpNo ()
{
    $this->getElement('deletePopUpNo')->click();
    $this->getSession()->wait(2000);
}

工作通知

通知中断

here 是视频。

【问题讨论】:

  • 我看不到它应该是什么样子的图像。您提供的信息非常有限,无法了解问题可能出在哪里。提供代码。此外,如果它在没有 Behat 的情况下正常运行,它应该与 Behat 一样正常运行(使用相同的浏览器)。
  • 我已经更新了这个问题,它们被称为通知而不是弹出窗口,这会让大多数阅读本文的人感到困惑。

标签: python angularjs automation cucumber behat


【解决方案1】:

如果我对所有内容的理解都正确,那么您说的是通知,而不是弹出窗口。直到今天,通知仍然是非常实验性的功能,一些浏览器不支持它们。我还假设支持它们的浏览器有不同的 API 来调用它们,这些都不是 Behat 使用的 Webdriver API 的一部分。

我相信您可以找到一种方法让通知显示正确的详细信息,但您肯定无法与之交互。这是另一个answer 支持我的想法。

我可以看到视频中的 Chrome 抱怨安全性,这可能是您获得未定义值的问题,解决此问题的方法是将此配置传递给 selenium 会话(这是 Behat 3 配置示例):

selenium2:
    browser: 'chrome'
    capabilities:
        browser: 'chrome'
        extra_capabilities:
            chromeOptions:
                args:
                    - '--test-type'

这个问题很好,不应该被否决。

【讨论】:

  • 感谢您在格式化和回答问题方面的帮助。我在 behat.yml 中尝试了上面的代码,extra_capabilities 无法识别 [Symfony\Component\Config\Definition\Exception\InvalidConfigurationException] Unrecognized options "extra_capabilities" under "behat.extensions.behat_minkextension_extension.selenium2.capabilities" 你有工作示例?
  • 这是一个工作示例。如果您使用的是 Behat 2,则语法可能会有所不同,如果它完全受支持的话。谷歌搜索没有返回任何有希望的结果,我认为你不走运。如果你想充分利用它,你应该升级。
猜你喜欢
  • 1970-01-01
  • 2016-09-12
  • 1970-01-01
  • 2016-08-28
  • 1970-01-01
  • 2020-04-14
  • 2019-09-09
  • 2015-04-18
  • 1970-01-01
相关资源
最近更新 更多