使用 Appium 在模拟器上测试 iOS 应用程序 - 找不到元素

开发者

我正在使用 Appium 客户端为我的 iOS 应用程序记录和生成测试脚本。在 App Inspector 上,我可以点击登录按钮并生成脚本(在 python 中),如下所示:

els1 = driver.find_elements_by_accessibility_id("login")
els1[0].click()

我可以通过点击 App Inspector 上的按钮成功登录到我的应用程序,但在 mac 终端上运行脚本时出现错误:

els3[0].click()

IndexError:列表索引超出范围

我尝试了使用accessibility id,name访问按钮元素的不同方法class name,但上述方法均无效。

我错过了什么?是不是Appium软件的bug?

开发者

经过数小时的谷歌搜索和尝试,我发现问题在于视图刷新。

每次发生视图转换或导航时,更新视图都需要时间。一旦所有内容都更新,webDriver 可以使用给定的搜索参数成功识别元素。

因此,在每次交互之间只需等待一秒钟:

el1 = driver.find_element_by_accessibility_id("login")
el1.click()
// wait for the view to get updated
driver.implicitly_wait(1)

els2 = driver.find_elements_by_name("Edit")
els2[0].click()

脚本将按预期运行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ios模拟器:如何关闭应用程序

iOS模拟器无法安装应用程序

如何通过Appium JUnit测试监视iOS模拟器/ Android模拟器的HTTP流量?

更新iOS后,使用该框架的所有应用程序都停止在设备上运行,但是它们在模拟器上运行

Expo / React-Native,是否可以在设备/模拟器上测试运行独立的iOS应用程序?

如何在CarPlay模拟器上测试iOS应用程序

使用Xcode 6的iOS 8模拟器下的应用程序性能降低

使用appium和python的android应用程序的功能测试

应用程序在设备上崩溃,但可在模拟器iOS上运行

在开发过程中如何同时使用Android和IOS模拟器来测试我的flutter应用程序?

是否可以使用Appium Python和AWS Device Farm为离子应用程序(在iOS和Android上运行)创建自动化测试?

如何在iOS模拟器或真实设备上测试Gluon应用程序?

如何使用Appium在ios中获取应用程序信息,例如应用程序版本,设备操作系统版本?

在iOS模拟器上删除应用程序数据而不卸载应用程序?

Xcode5面临测试应用程序iOS模拟器的奇怪问题,无法安装该应用程序

使用Cordova在iOS应用程序中找不到PushPlugin

iOS模拟器无法安装应用程序

SafariLauncher应用程序,用于使用Appium在Safari上的iOS真实设备上测试自动化是否必要?

Nightwatch / Appium配置,用于在iOS模拟器上测试浏览器

奇怪的 iOS 应用程序在模拟器上崩溃

使用 Appium 自动化应用程序时自动关闭 iOS 警报

无法在 iOS 模拟器中安装应用程序

即使 iOS 应用程序在模拟器上运行,它也会在 iPhone 上崩溃

使用 Appium 测试 React Native 应用程序

如何在 MacOS 上使用 Jenkins 的 appium 测试 iOS 应用程序

应用程序在 android 模拟器上滞后并在 ios 模拟器上正常工作是否正常?扑腾

如何避免在测试 ios appium 之前关闭应用程序

使用 iOS 模拟器在 expo 应用程序上使用 gpx 文件模拟位置

使用 xcodebuild 构建模拟器应用程序版本时找不到“Cordova/CDV.h”文件