【问题标题】:How to execute js code through Appium on React nativeReact native如何通过Appium执行js代码
【发布时间】:2017-11-10 00:43:52
【问题描述】:

我们曾经有一个 Cordova 应用,在 Appium 上运行时,我们可以切换到 Webview 并使用 execute_script 执行 JS 命令。

我想在 React Native 上做同样的事情来运行一些 JS 代码(例如,在全局上公开一个函数或运行类似 console.disableYellowBox = true; 的东西)。但是,appium 没有显示要切换到的 Webview 上下文,而且在我看来,本机应用程序上下文上的 execute_script 不起作用。

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

【问题讨论】:

    标签: react-native appium


    【解决方案1】:

    对于 ReactNative 应用程序,没有 Webview 上下文,因为 RN 被解释为 NATIVE_APP 之一。

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

    但是,您可以在 React Native 应用程序中为您的视图设置 accessibilityLabel 并像这样搜索它:

    driver.findElementByAccessibilityId(accessibilityLabel)
    

    应该适用于 iOS/Android。基本上,您应该像测试原生应用程序一样正确地进行测试,而不是混合应用程序。 当然,您可以使用 Xpath 进行文本搜索,但我强烈不建议这样做。

    【讨论】:

    • 好吧,寻找元素并不是问题所在。我要问的是如何进行 js 调用,例如 global.setUpMyTest();
    • 由于 RN 应用程序被 Appium 解释为 Native 应用程序,这就是您看不到 WebView 上下文的原因。这意味着您不能使用 JavascriptExecutor,因为它不是 Web 组件,而是 Android/iOS 组件(取决于您构建 Rn 应用程序的位置)
    猜你喜欢
    • 2018-02-23
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 2019-03-19
    • 2019-11-26
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多