本文主要是介绍appium自动化测试-元素内查找元素怎么用显性等待?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
什么是显性等待?
WebDriverWait():显示等待,是针对于某个特定的元素设置的等待时间,在设置时间内,默认每隔一段时间检测一次当前页面某个元素是否存在,如果在规定的时间内找到了元素,则直接执行,即找到元素就执行相关操作,如果超过设置时间检测不到则抛出异常。默认检测频率为0.5s, 如果在规定时间内没有加载出来那么就是会抛出TimeoutException
下面我们来看一段代码,在书城列表中查找图片元素,如何用显性等待实现?
driver.find_element(AppiumBy.ACCESSIBILITY_ID, "书城").click()
# time.sleep(2) # 强制等待
# ele = driver.find_element(AppiumBy.ID, "com.zhao.myreader:id/rv_book_list")
locator = (AppiumBy.ID, "com.zhao.myreader:id/rv_book_list")
ele = WebDriverWait(driver, 10).until(EC.visibility_of_element_located(locator)) # 使用显性等待查找元素
# image_elements = ele.find_elements(AppiumBy.ID, "com.zhao.myreader:id/iv_book_img")
locator = (AppiumBy.ID, "com.zhao.myreader:id/iv_book_img")
image_elements = WebDriverWait(ele, 10).until(EC.visibility_of_all_elements_located(locator)) # 在元素中查找元素使用显性等待for i in image_elements:i.screenshot(f"图片-{image_elements.index(i)}.png")
driver.quit()
从代码中我们可以看出,元素内查找元素使用显性等待其实很简单,和对元素设置显性等待相比,在实例WebDriverWait()对象时,把参数从driver改成ele即可:
app书城页面如下所示:
运行程序后,可以找到图片元素
这篇关于appium自动化测试-元素内查找元素怎么用显性等待?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!