1. 什么情况下需要显示等待?
答:隐式等待只能判断目标元素是否出现在dom树里,一些属性是否加载完成是无法判断的。
显示等待可以等待动态ajax元素,异步加载等,例如:图片视频就是异步加载
PS:主要用于判断一些属性、js脚本等。
2. 显示等待用到的两个类:
答:selenium包中的 WebDriverWait 和 expected_conditions,与Web 自动化中的显示等待是同一个方法。
使用实例如下:
1 def test_appium_inspector(self): 2 """ 3 1、打开雪球app 4 2、点击搜索框 5 3、输入”阿里巴巴“ 6 4、在搜索结果中点击”阿里巴巴“ 7 5、获取这只上香港阿里巴巴的股价,并判断这只股价的价格>200 8 """ 9 self.driver.find_element(MobileBy.ID, "com.xueqiu.android:id/tv_search").click() 10 self.driver.find_element(MobileBy.ID, "com.xueqiu.android:id/search_input_text").send_keys("阿里巴巴") 11 BK_locator = (MobileBy.XPATH, '//*[@text="BK0515"]') 12 WebDriverWait(self.driver, 10).until(expected_conditions.element_to_be_clickable(BK_locator)) 13 self.driver.find_element(*BK_locator).click() 14 15 price = float(self.driver.find_element(MobileBy.ID, 'com.xueqiu.android:id/current_price').text) 16 assert price > 200View Code
3. 实际应用场景:
答:一般先设置隐式等待3~6s,然后再上传文件等地方设置显示等待20s以上,延长等待时间。