//*[@class=「class屬性值」]
//*[contain(@text,「text文字)」]
一、在原生中獲取toast文字
class
testtoast
:def
setup
(self)
: caps =
caps[
"platformname"]=
'android'
caps[
"devicename"]=
'192.168.111.101:5555'
caps=
'com.example.android.apis'
caps=
'.view.popupmenu1'
caps[
"automationname"]=
'uiautomator2'
caps[
"noreset"]=
'true'
caps=
'true'
caps[
"skipdeviceinitializati"]=
'true'
caps[
"unicodekeyboard"]=
'true'
caps[
"resetkeyboard"]=
'true'
self.driver = webdriver.remote(
"", caps)
self.driver.implicitly_wait(10)
defteardown
(self)
:# self.driver.back()
self.driver.quit(
)def
test_toast
(self)
:"""
1.開啟 api demos -> views -> popup menu
2.點選search
3.獲取toast
:return:
"""self.driver.find_element_by_xpath(
'//*[@text = "make a popup!"]'
).click(
) self.driver.find_element_by_id(
'android:id/title'
).click(
(self.driver.page_source)
#複製列印資訊中toast的class屬性並列印值
#方法一
# print(self.driver.find_element(mobileby.xpath, "//*[@class='android.widget.toast']").text)
#方法二
(self.driver.find_element(mobileby.xpath,
"//*[contains(@text,'clicked popup')]"
).text)
二、在h5頁面中獲取toast
方法一,列印當前頁面原始碼,assert toast文字在原始碼中,即斷言正確。
比如雪球開戶,點選「a股開戶」—>輸入手機號和驗證碼—>點選「立即開戶」,若沒有點選獲取驗證碼而直接開戶就會toast提示「請獲取驗證碼」
程式碼:from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import webdriverwait
class
testaw
:def
setup
(self)
: caps =
caps[
"platformname"]=
'android'
caps[
"devicename"]=
'192.168.111.101:5555'
caps[
"platformversion"]=
'6.0'
caps=
'com.xueqiu.android'
caps[
"automationname"]=
'uiautomator2'
caps=
'.common.mainactivity'
caps[
"noreset"]=
'true'
caps=
'true'
caps[
"skipdeviceinitializati"]=
'true'
caps[
"unicodekeyboard"]=
'true'
caps[
"resetkeyboard"]=
'true'
caps[
"chromedriverexecutable"]=
self.driver = webdriver.remote(
"", caps)
self.driver.implicitly_wait(10)
defteardown
(self)
:# self.driver.quit()
self.driver.back(
)def
test_xueqiu_aw
(self)
:"""
2.點選「交易」
3.點選「a股開戶」
4.在輸入使用者名稱和密碼
5.點選「立即開戶」
6.退出應用
:return:
"""# 2.點選「交易」
self.driver.find_element(mobileby.xpath,
'//*[@text="交易"]'
).click(
) a_locator =
(mobileby.xpath,
'//*[@class="trade_home_agu_3ki"]/div[2]/h1'
)# 獲取當前上下文
(self.driver.contexts)
self.driver.switch_to.context(self.driver.contexts[1]
) webdriverwait(self.driver ,10)
.until(expected_conditions.element_to_be_clickable(a_locator)
)# 3.點選「a股開戶」
self.driver.find_element(
*a_locator)
.click(
(self.driver.window_handles)
# 獲取當前開啟的視窗
self.driver.switch_to.window(self.driver.window_handles[-1
])phonenumber_locator =
(mobileby.id,
'phone-number'
) webdriverwait(self.driver,60)
.until(expected_conditions.element_to_be_clickable(phonenumber_locator)
)# 4.在輸入使用者名稱和密碼,點選「立即開戶」
self.driver.find_element(
*phonenumber_locator)
.send_keys(
'18218813163'
) self.driver.find_element(mobileby.id,
'code'
).send_keys(
'123456'
) self.driver.find_element(mobileby.xpath,
'/html/body/div/div/div[2]/div/div[2]/h1'
).click(
)# 獲取toast文字
(self.driver.page_source)
assert "請獲取驗證碼」 in self.driver.page_source
方法二:只判斷toast可見,返回true。
這裡有個問題,就是不知道是操作失敗還是成功導致的toast,總之我用原生方法獲取不到文字資訊只能判斷它出現了,h5頁面獲取toast文字內容以後有空研究下吧。
# 獲取toast文字
while
true
: toast_text = self.driver.find_element(by.xpath,
'//*[text()="請先獲取驗證碼"]'
).is_displayed(
)if toast_text:
break
assert toast_text ==
true
Appium併發測試Capability配置
以下是啟動多個 android 會話的一些重要引數 u裝置 id chromedriver portchromedriver 埠 若是在使用 webviews 或 chrome selendroid portselendroid 埠 若是在使用 selendroid node p 4492 bp 2...
使用appium測試微博
1 確定測試工具 2 確定測試框架 3 編寫測試用例 4 編寫測試指令碼 5 除錯強化指令碼 這裡直接進入指令碼準備 這裡寫 片啟動微博 這裡寫 片markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的...
appium 測試使用的API
模擬操作類 元素定位類findelementbyxx driver.findelementbyid id id獲取方法 利用uiautomater截圖,獲取resource id driver.findelementbyclassname classname 通常通過這種方式獲取的view不止乙個,...