无法使用其他元素覆盖的Flutter Appium驱动程序单击Web元素

时间:2020-02-18 12:49:52

标签: flutter appium flutter-web flutter-test

我尝试使用flutter appium驱动程序在flutter应用程序中测试Webview并遇到问题: 在Web视图中,我有一段文本,该文本分两行显示。因此,放置文本被另一个元素覆盖。 我尝试了3种方法:

1.appium驱动程序:mouse.moveTo然后单击mouse.click。 使用mouse.moveTo然后使用mouse.click的解决方案不起作用,因为appium需要其他称为持续时间的参数,而appium_driver中的参数未包含该参数。

2。用flutter检查器在webview上定位元素-解决方案未成功,因为该webview是外部的,并且没有被flutter覆盖所覆盖。

3。点击范围 使用TESTWorld()。appiumDriver.pageSource从Web视图中获取所有对象。发现我们在Webview上具有所有对象的xml,其属性为bounds,text。制作一个包含3个“ MyString”字符串对象的列表,并使用appium_driver中的click()方法一个接一个地单击它们。第二个元素“ MyString”是可单击的,appium可以单击它,但是此字符串的第一个实例位于两行中,因此该元素是其他大元素的一部分,这就是为什么appium_driver无法单击它的原因。

也许有人知道另一种方法?

1 个答案:

答案 0 :(得分:0)

因为放置文字被另一个元素覆盖

在特定情况下,这听起来像是AUT问题。 Appium使用WebDriver API来测试WebView,并且预计将无法与重叠元素进行交互。

如果无法在应用程序中解决并修复它,则可以尝试JS发送点击操作(与在Webdriver中相同):

WebElement textElement = driver.findElement(...);
JavascriptExecutor jsEx = (JavascriptExecutor)driver;
jsEx.executeScript("arguments[0].click();", textElement);
相关问题