2017-09-06 44 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