上班几天,总算是恢复了状态。感觉SZ的秋天已经到来,早上在阳台洗漱,感觉阵阵冷意,和我在北方感觉没啥差别了。最近一直在写我的app的UI自动化脚本。
个人博客:https://blog.csdn.net/zyooooxie
一)Appium inspector的xpath定位可以提供相对路径
昨天提过这个 xpath定位标签是【1】【2】,但我今天做些测试的时候出现了问题,所以很尴尬。
我用xpath写了两个定位:
mingzi_xpath = ‘//[@resource-id=“layout_content”]/abc/abc/abc/abc/abc[1]’
biaoti_xpath = '//[@resource-id=“layout_content”]/abc/abc/abc/abc/abc[2]’
因为这两个元素都有content-desc属性值,我想看下,所以print(mingzi.get_attribute(“name”))
第一次是打印【1】成第二个属性值;脸都黑了!
第二次打印【2】没有这个属性值;脸更黑了!!
查找原因是
1.前面有个滑动的动作,不能保证滑动的实际位置特别合适;
2.强制等待1s 是为了不影响实际获取属性。
self.new_swipe(0.5, 0.7, 0.5, 0.45, 600)
time.sleep(1)
print(self.driver.find_element_by_xpath(ming_xpath).get_attribute('name'))
print(self.xin_find_element(By.XPATH, biaoti_xpath).get_attribute('name'))
self.xin_find_element(By.XPATH, tu_xpath).click()
self.new_swipe(0.7, 0.5, 0.3, 0.5, 600)
在这个过程 我是想到使用Appium Desktop的Inspector 来确定我写的xpath到底对不对,看到了inspector是可以提供相对路径的!!!
不知道为何,我始终是觉得它只有绝对路径的。
二)横着 滑动
第一张图 按着这一行的位置,向左滑动 就变成第二张图
之前我分享过 竖着的时间框 可以滑动的;今天无意发现这个操作,所以 flick_element(on_element, xoffset, yoffset, speed)又可以来做尝试;
from selenium.webdriver.common.touch_actions import TouchActions
TouchActions(self.driver).flick_element(self.driver.find_element(By.ID, self.wode_hang_id), -300, 0, 50).perform()
time.sleep(1)
self.new_find_elements(By.ID, self.wode_id, self.qita_num).click()
最开始也不确定x轴位移 应该是正数还是负数,尝试后,我想可以这样理解:
以手机左上角为原点,向右建立X轴,向下建立Y轴,flick_element()滑动是根据先后坐标位置来决定正数、负数;
举例:
1.向下滑动 Y轴数值增大,故而 yoffset为正数
2.向左滑动 X轴数值减少,故而 xoffset为负数
交流技术 欢迎+QQ 153132336 zy
个人博客 https://blog.csdn.net/zyooooxie