我有一个iOS应用程序,在一个页面上有很多输入字段。我想自动化这些输入,我知道如何滚动到那些元素和所有内容,但是部分显示的元素存在问题。
第一种情况是由于另一个元素与背景中的元素重叠而引起的。如果我单击背景中的元素,那么Appium将单击重叠的元素。这将导致错误的交互,从而导致测试崩溃。函数isDisplayed()不可用,因为即使只显示一两行像素,结果对于部分显示的元素也为真。
当我使用sendKeys()在元素中键入内容时,发生第二种情况。这会在iOS上打开键盘,并且当我想单击下一个元素时,键盘可能正好位于该元素上方,除了从该元素仍可见的一些空间之外,因此isDisplayed()对于元件。我知道有hideKeyboard()选项,但这并不总是可能的,因为显示的键盘必须具有隐藏键作为可见键。
对我来说,一个解决方案是我不单击下一个元素,而是单击它下面的元素,但这真是丑陋,应该有一个更好的解决方案。
我已经尝试计算元素的高度,但是在iOS中这是不可能的,因为所有元素(即使不在屏幕上)都可以在Appium中找到并且始终具有元素的高度。
所以我的问题是如何检查元素是否比isDisplayed()更可靠地完全可见?我希望使用Java解决方案,但也可以管理其他语言。