无法通过其他元素覆盖的带有flapp appium驱动程序的web元素单击

问题描述 投票:0回答:1

我试图使用Flutter Appium驱动程序在Flutter App中测试Web视图,并遇到了问题:在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无法单击它的原因。

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

flutter appium flutter-web flutter-test
1个回答
0
投票

由于该放置文本被另一个元素覆盖

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

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

WebElement textElement = driver.findElement(...);
JavascriptExecutor jsEx = (JavascriptExecutor)driver;
jsEx.executeScript("arguments[0].click();", textElement);
© www.soinside.com 2019 - 2024. All rights reserved.