从Selenium触发的Chrome通知中未定义,未定义

时间:2014-10-23 11:11:18

标签: python angularjs automation cucumber behat

我正在努力自动化用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);
}

工作通知

http://i58.tinypic.com/1z3qpsw.png

通知中断

here就是视频。

1 个答案:

答案 0 :(得分:3)

如果我理解正确,你就是在谈论通知,而不是弹出窗口。截至今天的通知仍然是实验性功能,有些浏览器不支持它们。我还假设支持它们的浏览器有不同的API用于调用它们,其中没有一个是Behat使用的Webdriver API的一部分。

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

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

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

不错的问题,它不应该被低估。