【问题标题】:Ruby:iOS: Find all elements in a screen with appiumRuby:iOS:使用appium查找屏幕中的所有元素
【发布时间】:2017-12-21 06:47:58
【问题描述】:

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

我在想黄瓜表使用的逻辑的实现是否对我有帮助。

黄瓜桌步骤是这样的

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

这将验证屏幕中的所有元素,无论我给出元素的名称还是表格中元素的 ID。

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

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

但这似乎不起作用。很感谢任何形式的帮助。我尝试了很多事情,但我无法记住所有事情。

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

【问题讨论】:

    标签: ios ruby automation cucumber appium


    【解决方案1】:

    目前,已经按照这个逻辑进行了。这将打印可见的元素和不可见的元素。

    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
    

    【讨论】:

      猜你喜欢
      • 2018-05-20
      • 2014-09-08
      • 2017-05-10
      • 2020-04-25
      • 1970-01-01
      • 1970-01-01
      • 2019-05-20
      • 2011-05-31
      • 2015-05-03
      相关资源
      最近更新 更多