通过expected_conditions判断网页元素是否存在
2024-10-21 13:05:05
expected_conditions模块:
是Selenium的一个子模块,selenium.webdriver.support.expected_conditions
可以对网页上元素是否存在进行判断,一般用于断言或与WebDriverWait配合使用
1 import time
2 from selenium import webdriver
3 from selenium.webdriver.support.wait import WebDriverWait
4 from selenium.webdriver.support import expected_conditions as EC
5 from selenium.webdriver.common.by import By
6
7
8 class Expected_Conditions:
9 # expected_conditions模块用法汇总
10 def __init__(self):
11 self.driver = webdriver.Chrome()
12 self.driver.get("https://www.baidu.com")
13 self.driver.maximize_window()
14 time.sleep(2)
15 # 判断当前页面的title
16 WebDriverWait(self.driver, 2).until(EC.title_is("百度一下,你就知道"))
17 # 判断定位元素
18 element = WebDriverWait(self.driver, 2).until(EC.visibility_of(self.driver.find_element(By.ID, 'kw')))
19 element.send_keys('中彦引擎')
20 time.sleep(2)
21
22 # 判断当前页面的title是否包含预期字符串,返回布尔值
23 WebDriverWait(self.driver, 10).until(EC.title_contains('new'))
24
25 # 判断当前页面的url是否精确等于预期,返回布尔值
26 WebDriverWait(self.driver, 10).until(EC.url_contains('https://www.baidu.com'))
27
28 # 判断当前页面的url是否包含预期字符串,返回布尔值
29 WebDriverWait(self.driver, 10).until(EC.url_contains('baidu'))
30
31 # 判断当前页面的url是否满足字符串正则表达式匹配,返回布尔值
32 WebDriverWait(self.driver, 10).until(EC.url_matches('.+baidu.+'))
33
34 # 判断元素是否出现,只要有一个元素出现,返回元素对象
35 WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, 'kw')))
36
37 # 判断元素是否可见,返回元素对象
38 WebDriverWait(self.driver, 10).until(EC.visibility_of(self.driver.find_element(By.ID, 'kw')))
39
40 # 判断元素是否包含指定文本,返回布尔值
41 WebDriverWait(self.driver, 10).until(EC.text_to_be_present_in_element((By.NAME, 'tj_trnews'), '新闻'))
42
43 # 判断该是否可以switch进去,如果可以的话,返回True并且switch进去
44 WebDriverWait(self.driver, 10, ).until(EC.frame_to_be_available_and_switch_to_it(By.XPATH, '// '))
45
46 # 判断某个元素是否可见并且是可点击的,如果是的就返回这个元素,否则返回
47 WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable((By.NAME, 'tj_trnews')))
48
49 # 判断某个元素是否被选中,一般用在下拉列表
50 WebDriverWait(self.driver, 10).until(
51 EC.element_to_be_selected(self.driver.find_element(By.XPATH, '//input[@type="checkbox"]')))
52
53 # 判断页面上是否存在
54 WebDriverWait(self.driver, 10).until(EC.alert_is_present())
55
56 self.driver.quit()
57
58
59 if __name__ == "__main__":
60 Expected_Conditions()
最新文章
- 使用MAT(Memory Analyzer Tool)工具分析dump文件--转
- 【HTML5】canvas画布练习
- Mysql 启动不了,问题集锦
- 关于phpcms v9投票模块选项排序listorder设定问题
- C++ transform
- CentOS6.5系统软件仓库及挂载NTFS
- uboot完全手册---14
- Android编程小实验
- java实现Composite(组合)模式
- Android handler 报错处理Can't create handler inside thread that has not called Looper.prepare()
- apache的FileUtils方法大全
- Linux中fork()函数详解(转)
- 【SSH之旅】一步学习的步Struts1相框(三):分析控制Struts1示例
- 浅谈IT企业挑选技术人员招聘几个要点
- 启用k8s metrics server监控
- ElasticSearch query_string vs multi_match cross_fields query
- 翻译 | Improving Distributional Similarity with Lessons Learned from Word Embeddings
- 吴恩达机器学习笔记26-样本和直观理解1(Examples and Intuitions I)
- CF1140E Palindrome-less Arrays
- [No000014E]提问的智慧How To Ask Questions The Smart Way