测试阵营本地人,有着appium
问题描述:
我已经为appium sript测试与红宝石:测试阵营本地人,有着appium
require 'rubygems'
require 'appium_lib'
require 'selenium-webdriver'
capabilities = {
'appium-version': '1.0',
'platformName': 'Android',
'platformVersion': '4.4',
'deviceName': 'TestAppium',
'app': '/Users/AwesomeProject/android/app/build/outputs/apk/app-debug.apk',
}
server_url = "http://0.0.0.0:4723/wd/hub"
Appium::Driver.new(caps: capabilities).start_driver
Appium.promote_appium_methods Object
find_element(:xpath, "//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.view.ViewGroup[1]/android.widget.EditText[1]").send_keys "hello world"
back
find_element(:xpath, "//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.view.ViewGroup[1]/android.widget.EditText[1]").send_keys "hello world"
driver_quit
返回的结果是:
{
"status": 7,
"value": "Could not find element using supplied strategy."
}
我的问题是:
为什么我使用提供的策略找不到元素?
TextInput React Native Component没有“id”属性。我可以通过ID找到TextInput React Native Component的元素吗?
答
-
你能如下更改您的代码,并尝试:
mobileElement = find_element(:xpath, '//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.view.ViewGroup[1]/android.widget.EditText[1]'); mobileElement.send_keys "hello world";
而对于其他可能的属性作出反应,我已经发现可以用来为
class
和css
机组件元素。你可以使用chrome://inspect/#devices
找到这些并检查元素。
注:为了增加它甚至我一直在寻找一个合适的答案的问题在这里(增加了奖金以及):Accessing React Elements using Appium for Automation
答
基于此链接:https://github.com/facebook/react-native/issues/7135
解决此问题的方法:在您的视图上同时使用accessible和accessibleLabel
DOC on accessiblity l亚伯:https://facebook.github.io/react-native/docs/accessibility.html#accessibilitylabel-ios-android
在我的反应成分:
<TextInput accessible={true} accessibilityLabel={Tap Me}></TextInput>
在我的脚本测试:
mobileElement = find_Element(accessibilty_id, "Tap Me")
mobileElement.send_keys "hello world"
您是如何找到在Android中accessibility_id? – goldylucks