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()

通过expected_conditions判断网页元素是否存在的更多相关文章

  1. Selenium(二十):expected_conditions判断页面元素

    1. 判断元素(expected_conditons) 作为一个刚刚转到python开发的小朋友,在开发前只将前辈们封装的方法看了一遍,学了一边selenium基础.看到封装的方法有什么判断元素是否存 ...

  2. expected_conditions判断页面元素

    expected_condtions提供了16种判断页面元素的方法: 1.title_is:判断当前页面的title是否完全等于预期字符串,返回布尔值 2.title_contains:判断当前页面的 ...

  3. selenium3 + python - expected_conditions判断元素

    expected_conditions 类 title_is: 判断当前页面的title是否完全等于(==)预期字符串,返回布尔值 title_contains : 判断当前页面的title是否包含预 ...

  4. expected_conditions模块提供了判断页面元素的16种方法

    1.title_is: 判断当前页面的title是否完全等于(==)预期字符串,返回布尔值2.title_contains : 判断当前页面的title是否包含预期字符串,返回布尔值3.presenc ...

  5. jQuery网页元素拖拽插件

    效果说明:配合已有CSS样式,载入插件后,网页元素可以随意在窗口内拖拽,设置了原位置半透明和拖拽半透明的效果选项,可根据需要选择.另外,当页面上有多个可拖拽元素时,可以载入另外一个用于设置z-inde ...

  6. jquery and js 判断一个元素是否存在

    一.javascript中判断一个元素是否存在 if(document.getElementById('example')){ // do sth } 二.jquery中判断一个元素是否存在 < ...

  7. 判断DOM元素是否出现再浏览器窗口中

    几乎所有的项目都要解决这样一个问题:判断一个元素是否出现在浏览器窗口中?因为通过它我们可以极大的优化项目的性能,进而提升用户的的体验.原生javasxript获取浏览器的滚动距离和可视窗口的高度 使用 ...

  8. selenium3+python3自动化测试学习之网页元素定位

    selenium基础实战之定位网页元素技巧 selenium定位网页元素 find_element_by_id,find_element_by_name,find_element_by_class_n ...

  9. js判断网页是否加载完毕 包括图片

    <script type="text/javascript" language="JavaScript"> //: 判断网页是否加载完成 docum ...

  10. JS判断网页是否在微信中打开/

    JS判断网页是否在微信中打开,代码如下: <script type="text/javascript"> function is_weixn(){ var ua = n ...

随机推荐

  1. ADG无法同步:TT00进程报错 Error 12514

    环境: Oracle 19.16 ADG (Single Instance -> RAC) 在配置ADG的场景,发现ADG不能同步. 1.查看报错信息 2.oerr查看该错误说明 3.尝试sql ...

  2. 创建型模式 - 原型模式Prototype

    孩子生来没娘的NT审核机制,又开始说我涉及到广告了,我涉及到什么广告了?我接着发. 学习而来,代码是自己敲的.也有些自己的理解在里边,有问题希望大家指出. 所属:创建型模式  原型模式 一般会和 工场 ...

  3. CSS中的各种格式化上下文-FC(BFC)、IFC、GFC、FFC)

    什么是FC? FC是Formatting Context的缩写,中文名:格式化上下文.是 W3C在CSS2.1 规范中的一个概念. FC是指页面中一篇渲染区域,渲染区域内使用的格式化上下文的渲染规则, ...

  4. redis实现分布式锁(包含代码以及分析利弊)

    redis实现分布式锁(基础版) 使用redis实现分布式锁的方法有多种,基础版本是基于setnx命令,即如果不存在则设置.这个命令可以保证只有一个客户端能够成功设置一个key,从而获得锁.设置key ...

  5. 【译】使用 ML.NET 进行机器学习 - 集群完整指南

    原文 | Nikola M. Zivkovic 翻译 | 郑子铭 在之前的几篇文章中,我们探索了一些基本的机器学习算法.到目前为止,我们介绍了一些简单的回归算法,分类 算法.我们使用 ML.NET 实 ...

  6. 线程基础知识 03 synchronized锁(对象在内存的布局和加上锁后对象在内存中的变化)

    1 线程不安全演示 public class ThreadAndLockTest1 { private static int a = 0; public static void main(String ...

  7. [Windows] 微信超级管家,自动好友回复、计数、自动同意、群发、好友导出、消息日志、无限多开

    [Windows] 微信超级管家,自动好友回复.计数.自动同意.群发.好友导出.消息日志.无限多开 微信超级管家是一款大神针对微信制作的工具,它的主要功能包括了自动回复.好友计数.自动同意.群发.好友 ...

  8. Element ui &多选框、输入框、下拉框、开关、上传文件

    ElementUI多选框 Checkbox 使用 <el-checkbox v-model="checked">备选项</el-checkbox> < ...

  9. windwos提权漏洞CVE-2023-21746复现(LocalPotato)

    0x01 漏洞原理 LocalPotato攻击是一种针对本地认证的NTLM反射攻击. Windows NTLM 在进行身份验证时存在漏洞,允许拥有低权限的本地攻 击者通过运行特制程序将权限提升至 SY ...

  10. 滴水 1.c++类 this指针 笔记+指针

    1.结构体带参数传递 将结构体的数据压入堆栈中 然后进入函数内进行处理 2.结构体指针传递 将this指针压入进去 来查找 a b数据 3.函数可以放在结构体里面,也可以放在结构体外面 放入进去后 但 ...