Ruby:iOS:使用appium查找屏幕中的所有元素

时间:2017-07-16 18:53:56

标签: ios ruby automation cucumber appium

我试图在一个黄瓜步骤中在appium中找到屏幕中的所有元素。现在,我有一个查询,它运行并提取和存储SQL表中存在的值以及通过提取文本与应用程序中存在的元素进行比较的那些值。我使用ruby并且我使用其id标识每个元素并编写find_element(I'd: "").text来获取文本。这个文本我存储在变量中,并将其与我从db接收的原始数据进行比较。现在,这个元素是动态的,这意味着它可能会或者可能不存在,下次我运行它。此外,屏幕中有很多元素,并且识别每个元素将是一项单调乏味的任务,如果假设已识别的元素未出现,则测试失败。我不想使用rescue false,因为我不知道出现了什么,什么没有。

我在考虑黄瓜表使用的逻辑的实现是否会对我有所帮助。

黄瓜表步骤看起来像

And then the page consists: |Table| |Cells| |Row|

这将验证屏幕中的所有元素是否给出元素名称或表格中元素的Id。

目前,我无法将包含db值的变量调用到包含黄瓜表的功能文件中?在这种情况下,有没有办法,模拟这个?通过在步骤定义文件中对表进行硬编码?

我尝试使用这种格式 [:table], [:Cell]

但这似乎不起作用。很感谢任何形式的帮助。我尝试了很多东西,但我无法记住一切。

如果需要任何信息,请在评论中提及,我很乐意更新所需的信息

1 个答案:

答案 0 :(得分:0)

现在,继续这个逻辑。这将打印可见的元素和不可见的元素。

arrays = [$array1, $array12, 'array3']
  arrays.each do |array|
    begin
      wait_true { exists { find_element(:xpath, "//*[@value='#{array}']") == true } }
      puts "we can verify '#{array}'"
    rescue
      puts "we could not verify '#{array}'"
      end
    end
end