https://github.com/appium/ruby_lib/blob/master/docs/docs.md

  • 控件查找
  • 获取和操作控件信息
  • 手势操作
  • 系统操作

 

控件查找一般通过xpath name id 来查找控件,例如:

find_element(:xpath,"//android.widget.Button[@text='Sign In’]")

find_element(:name, “account")

find_element(:id,’tvAccount’)

可以利用xpath 来定位text的控件 如find_element(:xpath,"//*[@text='Sign In']")

find_elements - 查找多个元素, 并以数组形式返回。没找到,返回空数组 []。

除了使用find_element find_elements 查找控件还可以使用button textfield text   

 

 

 

获取和操作控件信息

e.name # button, text

e.value # secure, textfield

e.type 'some text' # type text into textfield

e.clear # clear textfield

e.tag_name # calls .type (patch.rb)

e.text

e.size

e.location

e.rel_location

e.click

e.send_keys 'keys to send'

e.set_value 'value to set' # ruby_console specific

e.displayed? # true or false depending if the element is visible

e.selected? # is the tab selected?

e.attribute('checked') # is the checkbox checked?

其中

#text 获取控件的文本信息 如 element.text

#type 向控件输入信息 如element.type(“xxxxx”), element.type “xxxxx”

#send_keys 向控件输入信息 如element.send_keys“xxxxx”), element.send_keys “xxxxx”

#click  点击控件  如element.clike

 

 

手势操作

# move_to

# long_press

# press

# release

# tap

# wait

# swipe

# perform

# cancel

 

等待方法的使用: 

#no_wait 设置等待时间为0

#set_wait 设置等待时间 如 set_wait 10 设置等待时间为10秒

#wait

wait { text 'this alert is so cool' }  //等待文本”this alert is so cool”再下一步

#wait_true   

wait_true { ignore { text('The resource is unavailable') }.nil? } //一直等待直到文本 The resource is unavailable’出现再下一步

 

alert 原生的警告弹窗的使用方式 

点击alert的OK按钮用: alert_accept

点击alert的cancel按钮 用:alert_dismiss

得到alert的信息文本用:alert_text

得到alert的OK按钮上的文字用:alert_accept_text

得到alert的cancel按钮上的文字用:alert_dismiss_text

 

require 'rubygems'
require 'appium_lib'  
caps   = { 
    caps: { 
        platformName: 'Android', 
        appActivity: 'com.xxxxx.MainActivity', 
        appPackage: 'com.xxxxx.xxxxxxx', 
        deviceName: 'appiumTest',
        app:'/Users/xxxxxxx.apk' 
    },  
    appium_lib: { 
        wait_timeout: 30,
        sauce_username: nil, 
        sauce_access_key: nil 
    } 
}  
driver = Appium::Driver.new(caps).start_driver  
Appium.promote_appium_methods(Object)
testtext=driver.find_element(:id,'tvAccount').text

if testtext=='Account'
    driver.find_element(:id,'Account').click
    driver.find_element(:id,'EmailEditText').type 'xxxx@xxxx'
    driver.find_element(:id,'PwdEditText').type 'xxxxx'
    # driver.find_element(:xpath,"//android.widget.Button[@text='Sign In']").click
    driver.find_element(:xpath,"//*[@text='Sign In']").click

    # driver.find_element(:id,'button1').click
    alert_accept
    # wait { text 'The resource is unavailable' }
    # wait_true { ignore { text('The resource is unavailable') }.nil? }
    # driver.find_element(:id,'button1').click
    alert_accept
end

问题1:当键盘弹不出来,输入不了文字的时候,可改send_keys为type .

问题2:怎么样向输入框输入enter 

 

posted on 2017-10-08 16:53  ทดสอบ  阅读(212)  评论(0)    收藏  举报