2016-05-18 82 views
0

我已经为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." 
} 

我的问题是:

  1. 为什么我使用提供的策略找不到元素?

  2. TextInput React Native Component没有“id”属性。我可以通过ID找到TextInput React Native Component的元素吗?

回答

0
  1. 你能如下更改您的代码,并尝试:

    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"; 
    
  2. 而对于其他可能的属性作出反应,我已经发现可以用来为classcss机组件元素。你可以使用chrome://inspect/#devices找到这些并检查元素。

:为了增加它甚至我一直在寻找一个合适的答案的问题在这里(增加了奖金以及):Accessing React Elements using Appium for Automation

0

基于此链接: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" 
+0

您是如何找到在Android中accessibility_id? – goldylucks