当前位置: 首页 > 知识库问答 >
问题:

量角器无法识别打开的本机警报

郭易安
2023-03-14

我正在尝试处理本机打开的警报,但量角器无法识别此警报并向控制台发送错误-

1)测试用例pull - LiveSite - Call消息:NoSuchAlertError:无警报打开(会话信息:chrome=51.0.2704.103)(驱动程序信息:chrome Driver = 2 . 14 . 313457(3d 645 C 400 EDF 2 e 2c 500566 c9aa 096063 e 707 C 9 cf),平台=Windows NT 10.0 x86_64)(警告:服务器未提供任何stacktrace信息)命令持续时间或超时时间:9毫秒构建信息:版本:' 1 takesScreenshot=true,javascriptEnabled=true,cssSelectorsEnabled=true}]会话ID:96 c8 DFA 136495 b 599 f 607d 50616468 de stack trace:NoSuchAlertError:无警报打开(会话信息:chrome=51.0.2704.103)(驱动程序信息:chrome Driver = 2 . 14 . 313457(3d 645 C 400 EDF 2 e 2c 500566 C 9 aa 0960633 Object . bot . response . check response处的error(C:\ automation \ NPM \ node _ modules \量角器\ node _ modules \量角器\ selenium-web driver \ lib \ atoms \ error . js:113:18)位于C:\ automation \ NPM \ node _ modules \ lib \ atoms \ response . js处的error(C:\ automation \ NPM \ node _ modules \ selenium-web driver \ lib \ atoms \ response:106:9)(C:\ automation \ NPM \ node _ modules \量角器\ node _ modules \ jasmine wd \ index . js:93:33)在[object Object]。(C:\ automation \ NPM \node_modules \量角器\ node _ modules \ minijasmine node \ lib \ async-callback . js:45:37)在[Object Object]. jasmine . block . execute(C:\ automation \ NPM \ node _ modules \量角器\ node _ modules \ minijasmine node \ lib \ jasmine-1 . 3 . 1 . js:1174:17)在[Object Object]. jasmine . queue . next _(C:\ automation \ NPM \ node _ modules \量角器\ node _ modules[object Object]处的_ on time out(C:\ automation \ NPM \ node _ modules \量角器\ node _ modules \ minijasmine node \ lib \ jasmine-1 . 3 . 1 . js:2199:18)错误。(C:\ automation \ tests \ test cases \ newApp \ livesiteclient . js:74:3)位于[Object Object]. jasmine . env . describe _(C:\ automation \ NPM \ node _ modules \量角器\ node _ modules \ minijasmine node \ lib \ jasmine-1 . 3 . 1 . js:913:21)位于[Object Object]. jasmine . env . describe(C:\ automation \ NPM \ node _ modules \量角器\ node _ modules \ minijasmine node \ lib \ jasmine-1 . 3 . 1(c:\ automation \ tests \ test cases \ newApp \ livesiteclient . js:1:63)

我已经试过了-

 describe('vCita Production - Livesite (client side)', function() {

   var EC = protractor.ExpectedConditions;
   var callBtn = $$('div.action-content.layout-align-center.layout-column.flex').get(1); 

      beforeEach(function() {
        browser.ignoreSynchronization = true;
      });

      afterEach(function() {
        browser.ignoreSynchronization = false;
      });

  it('click on call button', function() {
    callBtn.click().then(function(){
      browser.driver.sleep(2000);
      browser.driver.switchTo().alert().dismiss();
    });
  });
});  

还有下面的代码(这实际上是有效的,但它只是忽略了alret,并没有进入“(警报)”,如果语句 -

browser.getAllWindowHandles().then(function (handles) {      
    browser.switchTo().window(handles[handles.length - 1]);
    var alertDialog = browser.switchTo().alert().thenCatch(function (e) {
        if (e.code !== 27) { throw e; }
    }).then(function (alert) {
        if (alert) {
            expect(alertDialog.getText()).toEqual("External Protocol Request");
            return alert.dismiss();
        }

callBtn.click();

共有1个答案

陈欣荣
2023-03-14

问题是,这是“External Protocol Request”(外部协议请求)对话框,它不是本机警报,是无法从Protractor/Selenium侧控制的浏览器/系统对话框。以下是chrome情况下的相关线程以及一些附加信息:

  • 在硒自动化期间绕过“外部协议请求”弹出
  • 有抑制'外部协议请求'的chrome开关吗?

如果是Firefox,事情可能会简单一些。其目的是:

  • 首先手动打开Firefox,单击“call”按钮并选择默认应用程序
  • 转到“帮助”-
 类似资料:
  • 我格式化了我的电脑,再次安装了windows 10,因为我想玩,Linux有问题。我正在尝试安装flutter和dart用于应用程序开发,但他指责这个错误。 颤振医生 在将颤振更改为beta之前,我对它进行了测试,它识别出颤振和飞镖插件,但我想将其保留在稳定通道中。 但是,我的代码无法识别它,我相信这是因为flutter和dart插件的这些错误。 密码 我已经通过android Studio和vs

  • 我已在全球范围内安装了react native cli: 然后运行: 我得到了以下结构: 当我运行react native run android时,我得到一个错误: 命令无法识别。你的意思是在一个本地项目中运行这个吗? 当我开始跑步时,我也会得到同样的结果。 反应原生-v 打印: 反应原生-cli: 0.2.0 反应原生:n/a-不在反应原生项目目录中 我做错了什么?

  • 似乎我在代码中遇到了一些同步问题。在我的过程中,我点击了一个按钮,打开了一个新的窗口。我通过下面的代码切换到新窗口。 我甚至试过: 不幸的是,大多数时候的问题似乎是selenium没有切换到新窗口(调试时可以看到它)。 我很乐意得到你的帮助。

  • 我尝试了很多事情,我尝试了等待浏览器和不等待浏览器。但每次它就是不想看到警报。 SO的这篇文章似乎正是我的问题:量角器:测试引导警告,但也没有解决我的问题。 这是弹出的html代码: 我使用async/await来确保程序等待,因此下面代码中的所有函数都是异步函数。所以我尝试这样做(也没有catch,并且有一个额外的函数用于超时)。这是页面对象内的一个方法,因此它返回值: (脚本1) 像这样,这个

  • 问题内容: 我正在使用Hibernate / JPA执行本地PostGIS查询。这些查询的问题在于它们需要的参数不是经典的X =“值”形式。 例如,以下几行崩溃 但是,以下查询有效: (但是它很容易出现SQL注入…) 有谁知道如何在这种情况下使用? 问题答案: 未为本机查询定义使用命名参数。根据JPA规范(第3.6.3节“ 命名参数”): 命名参数遵循第4.4.1节中定义的标识符规则。命名参数的使

  • 问题内容: 这正是我想要做的 我用表格打开一个页面,该表格包含有关用户的信息 我的getText()元素指示表中的用户数(例如“列表中的11个用户”) 我删除“列表中的用户”部分,并将字符串转换为整数,以便稍后在for循环中使用 我需要通过用户名(第9列)查找某些用户,并获取数字,该数字是该用户信息所在的行数(这就是我被卡住的地方) 我转到该行的第一列(该行将成为该特定用户的编辑按钮),然后单击它