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

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

楚帅
2023-03-14

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

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

我可以成功登录到我的应用程序点击应用程序检查员上的按钮,但我得到了一个错误,因为我在mac终端上运行脚本:

els3[0]。单击()

索引器:列表索引超出范围

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

我错过了什么?这是Appium软件的错误吗?

共有2个答案

温星华
2023-03-14

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

每次发生视图转换或导航时,更新视图都需要时间。一旦所有内容都更新了,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()

脚本将按预期运行。

罗心思
2023-03-14

如果我们试图访问列表范围内不存在的索引处的列表,则会出现此错误“IndexError:列表索引超出范围”

例如。

thislist = ["apple", "banana", "cherry"] // here list index range is 0-2
thislist[1] = "blackcurrant" // this works fine as value of index is in range 0-2

但如果我在下面试试

// this is run time error i.e. "IndexError: list index out of range"
//  as value of index is out of range 0-2
    thislist[3] = "blackcurrant" 

注意:列表索引以0开头

考虑FungEnEntsSyByAccess的ID(“登录”)方法不会因任何原因返回任何元素的情况。

els1 = driver.find_elements_by_accessibility_id("login");

我尝试访问0索引处的列表els1,该索引为空,因此出现错误“IndexError:列表索引超出范围”

现在,在访问列表之前,我们将检查列表是否为空

els1 = driver.find_elements_by_accessibility_id("login")
if els1:
   els1[0].click()
else :
   print "Element not found and els1 array is empty"        
 类似资料:
  • 嗨,我想在appium上使用ios模拟器并行运行ios测试用例。我知道MAC会有限制,因为只有一个模拟器会启动,但有没有后门入口可以让它们并行运行,我不想使用网格,因为有一些原因,所以有没有办法在ios模拟器上并行运行ios测试用例。 如果我一次运行两个不同端口和地址的appium服务器,只有一个ios模拟器会启动,因为它会关闭另一个。 我使用的是1.6.4 appium服务器和Xcode 8。

  • 我已经安装了Appium和所有必要的东西,通过iOS模拟器运行应用程序 然后我启动了一个模拟器并启动了Appium(确保在启动前在设置中设置了应用程序的路径) 我不知道应用程序是否应该在启动后立即开放。这就是为什么我运行督察。似乎设备已连接,应用程序的安装已启动。显示启动屏幕后,应用程序崩溃了。我用另一个应用程序尝试了同样的流程,得到了同样的结果。以下是Appium的日志:

  • 无法启动应用程序,请查找以下相同的跟踪 注意:同样的应用程序与卡拉巴赫工作,即我能够启动应用程序 我正在使用以下功能:

  • 我有一个本机应用程序,可以打开几个网页查看页面。我正在应用程序上运行appium,以便在需要向下滚动以查找用户名和密码字段的web视图页面上进行一些自动化测试。我尝试了所有我能在网上找到的建议,但都不起作用。有人能帮忙吗?我正在运行:Appium v1.3.5 iOS 8.1 这是我的密码: 这是我尝试滚动到并输入用户名的元素 以下是错误消息: 我尝试了以下方法,但不起作用: 首先使用

  • 自定义对象标识 Appium检查器无法找到其父元素的子元素。

  • 我在iPhone(模拟器)上自动化一个应用程序,我需要在应用程序启动后滑动页面(在最开始的飞溅页面)使用滑动功能不起作用: 尝试了其他选项,例如执行一个来实现同样的功能,但也没有成功。并尝试了更多的在线解决方案。在我的情况下,没有一个起作用。我在某个地方读到,版本7及以上不支持刷卡。这是真的吗?或者有解决办法吗? 我有最新版本的Xcode,Appium Xcode:7.3 Appium:1.4.1