最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

WebDriver在解除权限对话框警报后未检测到单击的底部元素

IT培训 admin 7浏览 0评论

WebDriver在解除权限对话框警报后未检测到单击的底部元素

我正在使用WdAndroid在Android的appium上运行自动化测试。我遇到困难的部分是,当第一次安装应用程序时,会弹出权限对话框(位置权限)。我使用下面的代码来接受许可。

driver.elementById('com.android.packageinstaller:id/permission_allow_button').click()

一旦对话框消失,我想点击活动的按钮来执行所需的操作,使用下面的代码片段来实现。

const intervalObj = setInterval(() => {

  driver.elementById('com.testpackage.testapp:id/testClickButton').click();

  clearInterval(intervalObj);
}, 3000);

但上面的操作不起作用,我在appium日志中遇到以下错误

[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug]使用带有contextId的'ID'查找'com.testpackage.testapp:id / testClickButton':''multiple:false [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug ]使用:UiSelector [INSTANCE = 0,RESOURCE_ID = com.testpackage.testapp:id / testClickButton] [debug] [AndroidBootstrap]从bootstrap接收命令结果[HTTP] < - POST / wd / hub / session / 88f58979-f7ff- 4d52-b840-e930d4a04804 / element 500 116 ms - 164 [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug]返回结果:{“status”:7,“value”:“找不到元素”}

自动化流程是接受权限并等待3秒以执行单击按钮。但这不会发生。

但是,如果我删除权限警告对话框,然后使用上面的代码片段来点击按钮,它可以正常工作。问题仅在对话框被解除且自动化未找到按钮时发生。

我在Node.JS中编写自动化源代码。

回答如下:

您是否可以在接受对话后尝试将应用程序发送到后台?有了这个,您将获得专注于您的应用程序

driver.elementById('com.android.packageinstaller:id/permission_allow_button').click()
driver.runAppInBackground(0)

在此之后,您可以再次搜索元素。

您的驱动程序还可以自动接受您的权限

capabilities.setCapability("autoGrantPermissions", "true");

我想建议的另一个功能是'noReset',因此每次启动应用程序时都不会询问这些权限,这是第一次:

capabilities.setCapability("noReset", "true");

WebDriver在解除权限对话框警报后未检测到单击的底部元素

我正在使用WdAndroid在Android的appium上运行自动化测试。我遇到困难的部分是,当第一次安装应用程序时,会弹出权限对话框(位置权限)。我使用下面的代码来接受许可。

driver.elementById('com.android.packageinstaller:id/permission_allow_button').click()

一旦对话框消失,我想点击活动的按钮来执行所需的操作,使用下面的代码片段来实现。

const intervalObj = setInterval(() => {

  driver.elementById('com.testpackage.testapp:id/testClickButton').click();

  clearInterval(intervalObj);
}, 3000);

但上面的操作不起作用,我在appium日志中遇到以下错误

[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug]使用带有contextId的'ID'查找'com.testpackage.testapp:id / testClickButton':''multiple:false [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug ]使用:UiSelector [INSTANCE = 0,RESOURCE_ID = com.testpackage.testapp:id / testClickButton] [debug] [AndroidBootstrap]从bootstrap接收命令结果[HTTP] < - POST / wd / hub / session / 88f58979-f7ff- 4d52-b840-e930d4a04804 / element 500 116 ms - 164 [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug]返回结果:{“status”:7,“value”:“找不到元素”}

自动化流程是接受权限并等待3秒以执行单击按钮。但这不会发生。

但是,如果我删除权限警告对话框,然后使用上面的代码片段来点击按钮,它可以正常工作。问题仅在对话框被解除且自动化未找到按钮时发生。

我在Node.JS中编写自动化源代码。

回答如下:

您是否可以在接受对话后尝试将应用程序发送到后台?有了这个,您将获得专注于您的应用程序

driver.elementById('com.android.packageinstaller:id/permission_allow_button').click()
driver.runAppInBackground(0)

在此之后,您可以再次搜索元素。

您的驱动程序还可以自动接受您的权限

capabilities.setCapability("autoGrantPermissions", "true");

我想建议的另一个功能是'noReset',因此每次启动应用程序时都不会询问这些权限,这是第一次:

capabilities.setCapability("noReset", "true");
发布评论

评论列表 (0)

  1. 暂无评论