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

如何使用Appium和React Native在Android上接受警报?

史默
2023-03-14

我有一个React Native应用程序,正在使用jest Appium Jest进行测试,以在真实设备上运行,适用于Android和IOS。

我正在使用Appium和wd库的WebDriveAPI。

我需要在屏幕上接受两个平台的警报。

对于IOS,似乎使用以下代码是可行的:

await driver.elementByAccessibilityId('OK').click();

然而,它不适用于Android。

搜索解决方案后,我来到了这个主题:如何在appium中接受此警报?

这里指出的解决方案使用Java客户端:

driver.switchTo().alert().accept();

我曾在代码中尝试过类似的解决方案,但它引发了一个错误:

driver.switchTo不是函数

这让我开始讨论这个问题:https://github.com/webdriverio/webdriverio/issues/1733

从2016年开始,显然Javascript客户端没有解决方案?还是我误解了?我还尝试将autoacceptlerts添加到功能中,但没有成功。

我的配置:

   import wd from 'wd';

   const conf = {
        platformName: 'Android',
        deviceName: 'Galaxy S8',
        app: '/<mypath>/app/build/outputs/apk/debug/app-debug.apk',
        platformVersion: '9',
        autoGrantPermissions: 'true',
        autoAcceptAlerts: 'true',
    }

    const driver = wd.promiseChainRemote('localhost', PORT);

   beforeAll(async () => {
    await driver.init(config);
    await driver.sleep(2000); // wait for app to load
   })

   // await driver.switchTo().alert().accept() // My Attempt 
   // await driver.elementByAccessibilityId('OK').click();

你知道我怎样才能让它在Android上工作吗?

共有1个答案

商品
2023-03-14

您需要更改驱动程序的上下文,以便能够与本机应用程序的警报交互。您可以使用下面的代码行将上下文更改为屏幕上的第一个警报。

appiumDriver.context(appiumDriver.getContextHandles().toArray()[1].toString());
 类似资料:
  • Appium v1.6.4-beta Xcode 8.2 macOs Sierra 10.12 我想自动保存照片在我的设备。但是第一次我必须给予许可。我使用了"接受警报",但不能接受允许访问照片库的警报。当我执行测试时,它以绿色显示测试通过,但是这个弹出窗口仍然出现在视图中,照片没有保存。 这是我的剧本 还使用了能力, 这是我想允许的 如何接受此警报?我试过使用xpath sa,但没有成功

  • 问题内容: 我正在设置标头和正文,使用Post提取将图像上传到服务器上。我得到的响应码是200,但它不是上传图像,而是其余数据正在上传。 这是正文的代码: 请帮助。我正在犯什么错误。:( 问题答案: 我找到了解决方案: **文件名是可选的…

  • 我用那个代码来控制我的android设备剪贴板,但是它给了我错误。我在远程设备Android6.0上测试这段代码。这是我的错误 Oct 06,2018年7:47:01 AM org.openqa.selenium.remote.errorcodes to status info:HTTP status:“404”->线程“main”org.openqa.selenium.unsupportedCo

  • 我使用硒与Appium和我的测试运行在Android和iOS真正的设备。一组测试运行在Android上,而iOS是空闲的。然后测试切换到iOS。两个设备同时连接。 下面是我使用testNG运行的套件的序列: 这里的问题是,当测试切换到android时,iOS设备显示os更新安装弹出窗口。我想在测试切换回iOS之前禁用弹出窗口。我可以从设置中删除更新

  • 环境:我必须用Selenium测试一个Web应用程序。在访问起始页之前,会抛出windows安全警报。由于Alert/Verification-Popup是在os级别上,所以selenium Alert-API无法处理它。 解决方法:为了访问该页面,我编写了一个脚本,其中填充用户名和密码,然后单击enter(脚本代码来自:https://automationtestingsimplified.wo

  • 我有一个应用程序页面,我需要垂直滚动,以达到应用程序的底部保存按钮。 我正在尝试下面的代码,但得到服务器端错误。 有什么好方法可以在android中实现滚动功能吗?