等待 Android 应用程序显示 React Native 按钮,然后触摸它
Wait for Android app to display a React Native button and then touch it
我正在为 Android 开发 React Native 应用程序,我一直在学习并尝试在 Ruby 中进行我的第一次测试。现在我希望我的测试等待应用程序的主屏幕加载,然后触摸 React 'TouchableOpacity' 按钮。
React Native 代码如下:
<View style={styles.row}>
<View style={styles.buttonContainer}>
<TouchableOpacity style={styles.buttonIcon} onPress={this.goToFaqsList.bind(this)} accessible={true} accessibility_id={'FAQs'}>
<Icon style={styles.icon} size={32} name="help" color="white"> </Icon>
</TouchableOpacity>
<Text style={styles.buttonText}>FAQ's</Text>
</View>
<View style={styles.buttonContainer}>
测试:
require 'rubygems'
require 'appium_lib'
capabilities = {
platformName: 'Android',
deviceName: 'Android',
app: '~/workspace/maps2/android/app/build/outputs/apk/app-debug.apk',
}
server_url = "http://0.0.0.0:4723/wd/hub"
# Start the driver
Appium::Driver.new(caps: capabilities).start_driver
Appium.promote_appium_methods Object
wait = Selenium::WebDriver::Wait.new :timeout => 10
wait.until { elementByAccessibilityId("FAQs").displayed? }
source
mobileElement = elementByAccessibilityId("FAQs")
puts(mobileElement)
driver_quit
“ elementByAccessibilityId ”是我在另一个主题中看到的一种方法,但出现错误:
Failure/Error: wait.until { elementByAccessibilityId("FAQs").displayed? }
NoMethodError:
undefined method `elementByAccessibilityId' for main:Object
有人可以告诉我错误并指出正确的方向吗?
谢谢
我成功了:在 React Native 代码中,我将属性 accessibility_id={'FAQs'} 更改为 accessibilityLabel={'FAQ'},并在 ruby 测试文件正确的方法是find_element(:accessibility_id, 'FAQs')。它正在工作!现在我可以 .click() 按钮并继续测试了。
https://github.com/appium/ruby_lib/blob/master/docs/android_docs.md 查看我们还有哪些其他功能可供使用。
我正在为 Android 开发 React Native 应用程序,我一直在学习并尝试在 Ruby 中进行我的第一次测试。现在我希望我的测试等待应用程序的主屏幕加载,然后触摸 React 'TouchableOpacity' 按钮。 React Native 代码如下:
<View style={styles.row}>
<View style={styles.buttonContainer}>
<TouchableOpacity style={styles.buttonIcon} onPress={this.goToFaqsList.bind(this)} accessible={true} accessibility_id={'FAQs'}>
<Icon style={styles.icon} size={32} name="help" color="white"> </Icon>
</TouchableOpacity>
<Text style={styles.buttonText}>FAQ's</Text>
</View>
<View style={styles.buttonContainer}>
测试:
require 'rubygems'
require 'appium_lib'
capabilities = {
platformName: 'Android',
deviceName: 'Android',
app: '~/workspace/maps2/android/app/build/outputs/apk/app-debug.apk',
}
server_url = "http://0.0.0.0:4723/wd/hub"
# Start the driver
Appium::Driver.new(caps: capabilities).start_driver
Appium.promote_appium_methods Object
wait = Selenium::WebDriver::Wait.new :timeout => 10
wait.until { elementByAccessibilityId("FAQs").displayed? }
source
mobileElement = elementByAccessibilityId("FAQs")
puts(mobileElement)
driver_quit
“ elementByAccessibilityId ”是我在另一个主题中看到的一种方法,但出现错误:
Failure/Error: wait.until { elementByAccessibilityId("FAQs").displayed? }
NoMethodError:
undefined method `elementByAccessibilityId' for main:Object
有人可以告诉我错误并指出正确的方向吗? 谢谢
我成功了:在 React Native 代码中,我将属性 accessibility_id={'FAQs'} 更改为 accessibilityLabel={'FAQ'},并在 ruby 测试文件正确的方法是find_element(:accessibility_id, 'FAQs')。它正在工作!现在我可以 .click() 按钮并继续测试了。
https://github.com/appium/ruby_lib/blob/master/docs/android_docs.md 查看我们还有哪些其他功能可供使用。