【发布时间】:2020-01-17 08:15:12
【问题描述】:
我有一个 React Native 应用程序正在使用 jest + Appium 进行测试 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 不是函数
这让我参加了这个问题讨论: 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 上运行吗?
【问题讨论】:
标签: javascript android react-native webdriver appium