2017-09-06 43 views
0

我们曾经有一个Cordova应用程序,在Appium上运行时,我们可以切换到Webview并使用execute_script执行JS命令。如何通过Appium在React本机上执行js代码

我想在React Native上做同样的事情来运行一些JS代码(例如,在全局上暴露一个函数或运行诸如console.disableYellowBox = true之类的东西)。但是,appium不会显示切换到的Webview上下文,在我看来,本机应用上下文中的execute_script不起作用。

有没有办法在RN客户端上做类似的事情?

回答

0

对于ReactNative应用程序,不存在Web视图上下文,因为RN被解释为NATIVE_APP之一。

查找元素更有趣:无法为Android设置resource-id

但是你可以设置accessibilityLabel您浏览的阵营本机应用程序并进行搜索,如:

driver.findElementByAccessibilityId(accessibilityLabel) 

应该不论是iOS/Android的工作。基本上你应该像测试本机应用程序一样测试你的测试,而不是混合测试。 当然,您可以使用Xpath通过文本进行搜索,但我强烈建议您不要这样做。

+0

那么,寻找元素并不完全是问题。我问的是如何进行js调用,例如global.setUpMyTest(); – claudiosvcc

+0

由于RN应用程序被Appium解释为Native应用程序,这就是为什么你没有看到WebView上下文。这意味着你不能使用JavascriptExecutor,导致它不是Web组件,而是Android/iOS(取决于你构建你的Rn应用程序的位置) – dmle