gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 22:48:07 26 4
gpt4 key购买 nike

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

我正在为 Webdriver API 使用 Appium 和 wd 库。

我需要在两个平台上接受屏幕上的提醒。

对于 IOS,似乎使用以下代码有效:

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

但是,它不适用于 Android。

在谷歌搜索解决方案后,我来到了这个主题: How to accept this alert in appium?

此处指出的解决方案使用 Java 客户端:

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

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

driver.switchTo is not a function

这让我参与了这个问题的讨论: https://github.com/webdriverio/webdriverio/issues/1733

它是从 2016 年开始的,显然没有针对 Javascript 客户端的解决方法?还是我误会了?我还尝试将 autoAcceptAlerts 添加到功能中,但没有成功。

我的配置:

   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 上运行吗?

最佳答案

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

appiumDriver.context(appiumDriver.getContextHandles().toArray()[1].toString());

关于javascript - 如何使用 Appium 和 React Native 在 Android 上接受警报?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57957746/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com