【问题标题】:Accept alert in protractor is throwing `no such alert` error量角器中的接受警报抛出“没有这样的警报”错误
【发布时间】:2019-05-13 09:34:09
【问题描述】:

我正在编写一个 E2E 测试来接受警报。

这是一个 chrome 对话框。附上图片供参考:

浏览器提醒

下面是我的代码:

await browser.waitForAngularEnabled(false);      
await browser.switchTo().alert().accept();
await browser.switchTo().defaultContent();
await browser.waitForAngularEnabled(true);

尝试接受警报时,我收到以下错误

 Failed: no such alert
    (Session info: chrome=75.0.3770.27)
    (Driver info: chromedriver=2.46.628411 (3324f4c8be9ff2f70a05a30ebc72ffb013e1a71e),platform=Mac OS X 10.13.6 x86_64)

感谢您对此提出的建议。

【问题讨论】:

  • 可能是文件对话框不是这样的警报。如果是这样,您可能希望将其视为一个窗口,通过找到它的句柄切换到它,然后点击您想要的按钮。 (但我也不肯定它在这个意义上是一个窗口)
  • @JeremyKahan 这是一个操作后引发的浏览器警报。但是,我尝试切换到窗口句柄,但仍然无法正常工作。
  • @ShabeerSha 链接中提到的解决方案对我不起作用。该解决方案谈到刷新页面,我不想刷新浏览器,因为如果我刷新浏览器,我所做的更改将会丢失。
  • 我在 Angular 7 上,量角器版本 5.4.2

标签: protractor


【解决方案1】:

首先尝试将其传递给 conf.js 中的 capabilities

capabilities: {
        "browserName": "chrome",
        "chromeOptions": {
            "args": ["incognito", "--window-size=1920,1080", "disable-extensions", "start-maximized", "--test-type=browser"],
            "prefs": {
                "download": {
                    "prompt_for_download": false,
                    "directory_upgrade": true,
                    "default_directory": path.join(process.cwd(), "tmp/downloads")
                }
            }
        }
    },

我几乎可以肯定它会有所帮助,如果不看看我上面的评论^

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    • 2017-06-30
    • 2021-02-19
    • 2021-08-10
    • 2017-02-19
    • 2019-01-05
    • 1970-01-01
    相关资源
    最近更新 更多