webui自动化EC模块常用
)
EC模块基本用法
EC全称:expected_conditions(预期条件)。
Selenium的expected_conditions模块提供了一些方法,可以等待与其条件成立
时再执行后续的操作。
这个模块的作用是确保代码在执行之前,等待页面或元素达到某种状态或条件。
以下是expected_conditions模块的几个常用方法及其作用:
- presence_of_element_located: 等待指定元素出现在DOM中。
- visibility_of_element_located: 等待指定元素可见。
- element_to_be_clickable: 等待指定元素可以被点击。
- text_to_be_present_in_element: 等待指定元素包含指定文本。
- title_contains: 等待页面标题包含指定文本。
- alert_is_present: 等待页面弹出警告框。
通过使用这些方法,可以使自动化测试更加稳定和可靠,避免因为页面加载时间过长或元素未加载完成而导致的错误和异常。
# 导入EC
from selenium.webdriver.support import expected_conditions as EC
示例代码:显示等待
def ele_walt(driver):
"""
显示等待
:param driver:
:return:
"""
wait = WebDriverWait(driver, 2)
loc = ("id", "imgSpan")
text = '点击上传'
点击上传元素 = wait.until(EC.text_to_be_present_in_element(loc, text))
if 点击上传元素:
return True
def 显示等待查找元素(driver,loc,timeout=10,po;;=0.5):
return WebDriverWait(self.driver, timeout=timeout, poll_frequency=poll).until(EC.presence_of_element_located(*loc))
EC常用方法–判断元素是否存在
原文链接:https://blog.youkuaiyun.com/lovedingd/article/details/77198263isEnable()
、isDisplayed()
和isSelected()
1、以上三个为布尔类型的函数
2、isEnable()
用于存储input、select等元素的可编辑状态,可以编辑返回true,否则返回false
3、isDisplayed()
这个有点陌生,在大神写的脚本看到几次不知道何用意先不管,本身这个函数用于判断某个元素是否存在页面上(这里的存在不是肉眼看到的存在,而是html代码的存在。某些情况元素的visibility为hidden或者display属性为none,我们在页面看不到但是实际是存在页面的一些元素)
4、isSelected()
,很显然,这个是判断某个元素是否被选中。例如
element=driver.find_element_by_name("XXX")
element.is_enabled() #是否可以编辑,或者按钮是否可以点击
element.is_displayed():#判断元素是否显示
element.is_selected():# 判断元素是否选中状态
driver.find_element_by_id('kw').is_displayed() #查看元素是否可见
EC.presence_of_element_located((By.ID,"kw")) #查看某个元素是否存在
EC.element_to_be_clickable() #查看元素是否可点击
EC.element_located_to_be_selected((By.ID,"kw")) #某个预期元素是否被选中
补充:
#frame可见并切换到该frame上
EC.frame_to_be_available_and_switch_to_it
#元素可以点击,常用于按键
EC.element_to_be_clickable
#元素出现,只要一个符合条件的元素加载出来就通过
EC.presence_of_element_located
#元素出现,须所有符合条件的元素都加载出来,这个基本上就是你爬取的最主要内容了
EC.presence_of_all_elements_located
#判断某段文本是否出现在某元素中,常用于判断输入页数与实际高亮页数是否一致
EC.text_to_be_present_in_element