我使用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。任何和所有的帮助将不胜感激。
答案 0 :(得分:2)
当您找到元素时,请尝试将其文字设置为全部大写,然后检查您正在搜索的单词的一个版本。
即。 BacK或Back或BACK都将成为" BACK"