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

2024-05-14

我正在致力于自动化一个用 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);
}

工作通知

损坏的通知

And here https://drive.google.com/file/d/0B4xBztiLxfvSck42QnRicUZ1M3c/view?usp=sharing是视频。


如果我理解正确的话,你说的是通知,而不是弹出窗口。直到今天,通知仍然是实验性功能,一些浏览器不支持它们。我还假设支持它们的浏览器有不同的 API 来调用它们,这些 API 都不属于网络驱动程序 http://docs.seleniumhq.org/projects/webdriver/API,由 Behat 使用。

我确信您可以找到一种方法使通知显示正确的详细信息,但您肯定无法与其交互。这是另一个answer https://groups.google.com/forum/#!topic/webdriver/Y3pgK9qyD0s支持我的想法。

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

未定义,当从 Selenium 触发时,Chrome 通知中未定义 的相关文章

随机推荐