通过expected_conditions判断网页元素是否存在
2021-03-01 08:27
标签:返回 frame wait click ini switch main 是的 find expected_conditions模块: 是Selenium的一个子模块,selenium.webdriver.support.expected_conditions 可以对网页上元素是否存在进行判断,一般用于断言或与WebDriverWait配合使用 通过expected_conditions判断网页元素是否存在 标签:返回 frame wait click ini switch main 是的 find 原文地址:https://www.cnblogs.com/lxj-dream/p/14421233.html
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()
上一篇:.Net Core 文件系统整理
下一篇:VS生成解决方案时报错: Your project does not reference ".NETFramework,Version=v4.5"
文章标题:通过expected_conditions判断网页元素是否存在
文章链接:http://soscw.com/index.php/essay/58477.html