我们使用Cordova构建了一个应用程序。使用Protractor和Appium实现自动化测试,然后是this guide。这样可以,但我不确定这是不是最好的方法。我们遇到一些随机失败的测试。 然后我在WebDriver Github site:
上阅读了这篇文章可以使用wd使用Selenium或Appium测试移动设备。但是在任何一种情况下都不支持完整的JsonWire协议(或者是错误的)。
如果我正确读到这个,那么使用带有Appium的WebDriver是错误的。 但即使是Appium也有使用WebDriver的例子,请参阅here。
我不确定替代方案是什么,也许WebdriverIO?但是我找不到很多关于它的文档。或者我读错了,我们应该在没有问题的情况下使用wd吗?
答案 0 :(得分:2)
在回答您的具体问题时,Protractor,Selendroid和WebdriverIO(以及其他)都是(Selenium 2.0)WebDriver的JavaScript实现 - 这是一个层/协议/ API,您可以通过它来查询和控制Appium。绑定存在于各种语言中:python,Java等。
所以,是,完全可以同时使用Protractor和Appium。
(我不会个人,因为我仍然将Protractor与AngularJS应用程序联系起来,而且它绝不是JavaScript WebDriver中唯一的游戏。但是,这不是bug或者缺乏支持。)
我肯定想查询Christian先生网站上的引文 - 无论如何不官方WebDriver Github网站。这没错,但WebDriver spec很大,几乎没有人实现所有这一切。所以我会用一小撮盐来接受这个声明。
确定您的基本方法不完全没错,最好是探索随机失败的测试,并找出问题所在。
当然,对于新手来说,很大比例的“随机”失败是他们的测试代码中完全可以避免的竞争条件,但更有经验的用户将不得不以其他形式处理同样的问题。