【问题标题】:Running protractor test in firefox clear pop up在 Firefox 清除弹出窗口中运行量角器测试
【发布时间】:2020-10-22 21:06:30
【问题描述】:

我正在针对我的 Angular 应用程序运行量角器端到端测试。我无法使用 ENTER 或 ESCAPE 清除弹出窗口。

await element(by.xpath("//*")).sendKeys(protractor.Key.ENTER); 
or 
await element(by.xpath("//*")).sendKeys(protractor.Key.ESCAPE);

我想针对 firefox 运行测试,我在 google chrome 中运行测试没有任何问题 下面我附上了下载弹出窗口,我尝试更改浏览器中的设置,使弹出窗口不出现,但下面对我不起作用。

工具菜单 > 选项 > 常规选项卡 > 下载部分 > 清除下载窗口的相应复选框。 我的firefox版本是82.0

下面是测试

it("should clear the pop up and proceed",async function(){
  await element(by.xpath("//*")).sendKeys(protractor.Key.ESCAPE);
  wait = browser.wait(EC.elementToBeClickable($('#mat-expansion-panel-header-0')), 5000);
  let pageTitle = await browser.getTitle();
  expect(pageTitle).toEqual('xyz');
})

任何关于如何在 firefox 运行端到端测试中清除弹出窗口的建议或帮助都会很棒!

【问题讨论】:

  • 如果我的问题不清楚,请告诉我
  • 我有其他规格但量角器在试图清除弹出窗口时卡住了,所以规格超时

标签: javascript angular firefox protractor end-to-end


【解决方案1】:

关于警报的注意事项

我们无法使用检查工具识别警报。

我们不能为警报编写 xpaths

这不是一个窗口

我们无法使用 JavaScript Executor 处理警报。

不允许对网页进行任何其他操作

Alerts 类提供了一些方法来处理网页中存在的警报;使用这些方法,我们可以接受、关闭、获取警报的详细信息,还可以设置一些值。

我们必须为Alert类创建对象。我们可以像Alertal = new Alert()一样创建它,但是这个对象只代表一个内存地址,显然我们可以访问里面存在的方法,但是这个对象不知道,在哪里或者应该在哪个页面上执行这个操作 accept() dismiss() getText() sendKeys()

我们可以像下面这样创建对象警报:

let abc:Alert = browser.switchTo().alert();。现在您可以接受或关闭它。

【讨论】:

    猜你喜欢
    • 2016-07-15
    • 2020-05-28
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多