Appium控制項互動

2022-01-09 23:26:58 字數 3251 閱讀 8169

點選views

滑動選擇並點選textfields

清除文字

#!/usr/bin/python3

#-*-coding:utf-8-*-

import pytest

class testlocator:

def setup(self):

desired_caps = {}

desired_caps['platformname'] = 'android'

desired_caps['platformversion'] = '6.0.1'

desired_caps['devicename'] = '127.0.0.1:7555'

desired_caps['automationname'] = 'uiautomator2'

desired_caps['newcommandtimeout'] = 3000

desired_caps['noreset'] = true

desired_caps['skipdeviceinitialization'] = true

desired_caps['unicodekeyboard'] = true

desired_caps['resetkeybboard'] = true

self.driver = webdriver.remote('', desired_caps)

self.driver.implicitly_wait(5)

def teardown_method(self):

self.driver.quit()

def test_locator(self):

self.driver.find_element_by_xpath('//*[@text="views"]').click()

self.driver.find_element_by_android_uiautomator(

'new uiscrollable(new uiselector().scrollable(true).instance(0)).scrollintoview(new uiselector().text("textfields").instance(0));').click()

elem.clear()

get_attribute()方法能獲取的屬性,元素的屬性幾乎都能獲取到。屬性名稱和uiautomatorviewer裡面的一致。

字串型別:

布林型別:

注意:有些屬性展示在 uiautomatorviewer裡,但是不能通過get_attribute獲取,比如: index。

class testgetattribute:

def setup(self):

desired_caps = {}

desired_caps['platformname'] = 'android'

desired_caps['platformversion'] = '6.0.1'

desired_caps['devicename'] = '127.0.0.1:7555'

desired_caps['automationname'] = 'uiautomator2'

desired_caps['newcommandtimeout'] = 3000

desired_caps['noreset'] = true

desired_caps['skipdeviceinitialization'] = true

desired_caps['unicodekeyboard'] = true

desired_caps['resetkeybboard'] = true

self.driver = webdriver.remote('', desired_caps)

self.driver.implicitly_wait(5)

def teardown_method(self):

self.driver.quit()

def test_get_attribute(self):

print("text:" + elem.get_attribute("text"))

print("resource-id:" + elem.get_attribute("resource-id"))

print("class:" + elem.get_attribute("class"))

print("package:" + elem.get_attribute("package"))

print("content-desc:" + elem.get_attribute("content-desc"))

print("bounds:" + elem.get_attribute("bounds"))

print("checkable:" + elem.get_attribute("checkable"))

print("checked:" + elem.get_attribute("checked"))

print("clickable:" + elem.get_attribute("clickable"))

print("enabled:" + elem.get_attribute("enabled"))

print("password:" + elem.get_attribute("password"))

print("displayed:" + elem.get_attribute("displayed"))

print("######################")

print("text:" + elem.text)

print(elem.location)

print(elem.size)

print(elem.is_displayed)

print(elem.is_enabled)

print(elem.is_selected)

執行結果:

resource-id:android:id/text1

class:android.widget.textview

bounds:[0,342][720,414]

checkable:false

checked:false

clickable:true

enabled:true

password:false

displayed:true

######################

--the end--

appium 定位控制項

id 定位 通過uiautomatorviewer.bat 工具可以檢視物件的id屬性。如果目標裝置的api level低於18則uiautomatorviewer不能獲得對應的resource id,只有等於大於18的時候才能使用。開啟uiautomatorviewer.bat工具 resourc...

Appium入門(8) 控制項定位

如果目標裝置的api level低於18則uiautomatorviewer不能獲得對應的resource id,只有等於大於18的時候才能使用。開啟uiautomatorviewer.bat後同步裝置螢幕 id定位 driver.findelement by.id name定位 driver.fi...

sciter table控制項互動

需要特別注意語法的問題。html原始碼 item name description okc 中原始碼 tableid 表控制項id sciter value cmakepeframe itemtest sjson cjson printunformatted proot stra sjson cst...