检查Appium中是否显示具有不同文本框的元素并相应地执行逻辑

时间:2017-05-22 20:14:43

标签: ruby automation cucumber appium

我使用Appium和Cucumber Framework并使用Ruby语言。

我的方案是我的应用程序有多个按钮,我想用一个Gherkin语句调用"我按下" *"按钮"其中*是模块化的。我用它来保存,返回,取消,展开,是,否等按钮,文字简单。这是一个例子:

linsolve

现在我的应用程序在Android上有多个版本的" Back"按钮和它们并非全部格式相同。有些人的文字是" BACK"有些是" Back"有些是"返回"。我设计了一系列if语句来处理这种差异,直到我可以让开发人员标准化他们用于这些按钮的文本:

      And I press the "Create a Note" FAB button
      And I am on the Create a Note Screen
      Then I tap Back
>>    And I press the "Yes" button

我的想法是我将button_text参数保存到变量@button_text,然后使用.displayed?检查该按钮版本是否可用的方法。如果是,我传递.click()方法,如果它不是通过.capitalize,.upcase和.downcase方法改变变量的文本。我确信使用嵌套的if语句并不是最理想的方法,因此我希望能够以更好的方式编写该语句。

我收到的问题是我得到的"使用给定的搜索参数无法定位元素"每当我到达这行代码时出错。好像是.displayed?方法不返回值并触发appium以停止测试。

我希望appium检查该按钮的版本是否存在,然后调整变量并检查新版本是否为upcase,downcase和capitalize。任何和所有的帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

当您找到元素时,请尝试将其文字设置为全部大写,然后检查您正在搜索的单词的一个版本。

即。 BacK或Back或BACK都将成为" BACK"