我是Appium的新手,我正在尝试使其在本机应用程序上运行。我正在关注this tutorial,但遇到了一些问题。
我正在尝试使用accessibilityLabel="testview"
查找元素,但是当我执行代码时,找不到此元素。因此,我放置了命令console.log(await driver.source());
来查看XML代码。即使在模拟器上打开了应用程序,我仍然可以从Android主页获取XML代码,而不能从我的应用程序获取代码。
我的测试代码是:
import wd from 'wd';
jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000;
const PORT = 4723;
const config = {
platformName: 'Android',
deviceName: 'Android Emulator',
app: './android/app/build/outputs/apk/debug/app-debug.apk', // relative to root of project
appPackage: 'com.example.android',
appActivity: 'com.example.MainActivity'
};
const driver = wd.promiseChainRemote('localhost', PORT);
beforeAll(async () => {
await driver.init(config);
await driver.sleep(8000); // wait for app to load
})
test('appium renders', async () => {
console.log(await driver.source());
expect(await driver.hasElementByAccessibilityId('testview')).toBe(true);
});
有人知道为什么我要从应用程序中获取此XML代码而不是XML代码吗?是否有任何错误的配置?我正在使用Windows,genymotion,Android仿真器和uiautomator。
答案 0 :(得分:0)
我通过更改所使用的uiautomator的版本解决了该错误。我只是在配置中添加了一行:
const config = {
platformName: 'Android',
deviceName: 'Android Emulator',
app: './android/app/build/outputs/apk/debug/app-debug.apk', // relative to root of project
appPackage: 'com.example.android',
appActivity: 'com.example.MainActivity'
automationName: 'uiautomator2'
};