999
https://www.w3school.com.cn/xpath/xpath_syntax.asp
语法介绍:
import pytest from appium import webdriver from time import sleep from appium.webdriver.common.touch_action import TouchAction class TestDw(): def setup(self): desire_cap = {} desire_cap['platformName'] = 'android' desire_cap['devicesName'] = '127.0.0.1:7555' desire_cap['appPackage'] = 'com.xueqiu.android' desire_cap['appActivity'] = 'view.WelcomeActivityAlias' desire_cap['dontStopAppOnReset'] = 'true' desire_cap['unicodeKeyBoard'] = 'true' desire_cap['resetKeyBoard'] = 'true' self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desire_cap) self.driver.implicitly_wait(10) def teardown(self): self.driver.quit() def test_search(self): print("搜索用例") """ 1.打开雪球app 2.点击搜索输入框 3.想搜索输入框里面输入“阿里巴巴” 4.在搜索输入框里面选择“阿里巴巴”,然后进行点击 5.获取这只相关阿里巴巴的股价,并判断这只股价的价格>200元 """ self.driver.find_element_by_id("com.xueqiu.android:id/tv_search").click() e16 = self.driver.find_element_by_id("com.xueqiu.android:id/search_input_text").send_keys("阿里巴巴") self.driver.find_element_by_xpath("//*[@resource-id='com.xueqiu.android:id/name' and @text='阿里巴巴']").click() cureent_price = float(self.driver.find_element_by_id("com.xueqiu.android:id/current_price").text) assert cureent_price > 200 sleep(3) self.driver.back() def test_attr(self): """ 1.打开雪球应用首页 2.定位首页搜索框 3.判断搜索框是否可用,变查看搜索框name属性值 4.打印搜索框这个元素的左上角坐标和它的宽高 5.向搜索框输入alibaba 6.判断阿里巴巴是否可见 7.如果可见,打印搜索成功点击,如果不可见,打印搜索失败 """ ele = self.driver.find_element_by_id("com.xueqiu.android:id/tv_search") #判断是否可用 search_enabled = ele.is_enabled() #查看name属性值 print(ele.text) #查看左上角坐标值 print(ele.location) #查看宽高 print(ele.size) if search_enabled == True: ele.click() self.driver.find_element_by_id("com.xueqiu.android:id/search_input_text").send_keys("alibaba") ele_alibaba = self.driver.find_element_by_xpath("//*[@resource-id='com.xueqiu.android:id/name' and @text='阿里巴巴']") # ele_alibaba.is_displayed() #get_attribute可以获得元素的几乎所有属性 ele_displayed = ele_alibaba.get_attribute("displayed") if ele_displayed == 'true': print("搜索成功") else: print("搜索失败") def test_touchaction(self): action = TouchAction(self.driver) action.press(x=731,y=2083).wait(200).move_to(x=731,y=484).release().perform() def test_get_current(self): self.driver.find_element_by_id("com.xueqiu.android:id/tv_search").click() e16 = self.driver.find_element_by_id("com.xueqiu.android:id/search_input_text").send_keys("阿里巴巴") self.driver.find_element_by_xpath("//*[@resource-id='com.xueqiu.android:id/name' and @text='阿里巴巴']").click() current_price = float(self.driver.find_element_by_xpath("//*[@text='09988']/../../..//*[@resource-id='com.xueqiu.android:id/current_price']").text) print(f"价格{current_price}") assert current_price >200 if __name__ == '__main__': pytest.main()