“command”:“get_text”,
“isolateId”:“isolates/4374098363448227”
}
}
了解上述原理后,就可以通过构造协议格式,在任何语言、测试框架下都能够去驱动flutter测试,所以我们对这个协议进行了封装,使用Python进行驱动,这样可以在使用uiautomator2和facebook-wda的基础上来测试flutter页面,以满足flutter混合栈应用的测试需求。最终的实现代码demo如下。
from flutter_driver.finder import FlutterFinderfrom flutter_driver.flutter_driver import FlutterDriver
import uiautomator2 as u2
if name == “main”:
d = u2.connect()
driver = FlutterDriver(d)
if pageFlutter is True: # 如果是flutter,则使用flutter driver进行驱动
driver.connect(“com.it592.flutter_app”)
finder = FlutterFinder.by_value_key(“input”)
driver.tap(finder)
time.sleep(1)
print(driver.getText(FlutterFinder.by_value_key(“counter”)))
else:
d(text=“increase”).click()
我们尝试使用该套框架,发现其实flutter driver底层提供的能力相对比较薄弱,并