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. DLL的两种加载方式

    案例简述 在某项目中,需要使用两个不同版本的HCNetSDK库,我们通常使用的静态加载DLL的方式不能满足该需求,故用到动态加载DLL的方式. 背景技术及术语解释 静态加载:也称隐式调用,指在运行程序 ...

  2. SQL Case条件判断SQL

    问题描述:在表中取到一些值做出判断,配合监控监测一些表中的数据.使用select case when if 来做条件查询判断 CASE 表达式遍历条件并在满足第一个条件时返回一个值(类似于 if-th ...

  3. 843. n-皇后问题

    题目: 这 道 题 呢 唯 一 一 点 与 其 他 题 目 不 同 之 处 就 是 它 有 有 3 个 v i s 数 组 以及是一行一行深搜的. 主要思路为: 从第一行 到第n行,一行放一个,这一行 ...

  4. Rust Rand生成随机数

    # in project file cargo add rand extern crate rand; use rand::Rng; fn main() { let mut rng = rand::t ...

  5. 重学SpringBoot. step6 SpringBoot高级技巧

    SpringBoot高级技术 博客地址: step6 SpringBoot高级技巧 异步线程池 书上讲的是什么像异步操作那样,然后不需要等待. 问题是,不需要等待,但数据在生成的时候的时间并不能省. ...

  6. 嵌入式Linux—Framebuffer应用编程

    Framebuffer 应用编程 Frame的意思是帧,buffer的意思是缓冲区.Framebuffer就是一块内存(硬件设备),里面保存着一帧图像. ioctl()函数解析 ioctl()函数非常 ...

  7. 力扣每日一题2023.1.16---1813. 句子相似性 III

    一个句子是由一些单词与它们之间的单个空格组成,且句子的开头和结尾没有多余空格.比方说,"Hello World" ,"HELLO" ,"hello w ...

  8. 使用brew安装历史版本的几种方式

    背景 在 mac osx 下, 大部分的软件都是使用 homebrew 进行管理的, 可以方便的进行软件的安装,更新,删除等等, 大部分情况下 homebrew 的仓库只会存在一份最新的软件版本, 有 ...

  9. vue组件的对象式写法,vue中的h函数

    render:将虚拟dom转为真实dom h函数:创建的是vnode,也可以成为createVnode函数 语法:h(元素名称 ,这个元素的数据,子集) 第一个参数:可以为一个html标签,一个组件, ...

  10. JWT的原理及使用

    目录 JWT的原理及使用 一.什么是JWT? 二.签发认证流程 三.使用方法 1.设置登录接口 2.设置过期事件 3.定制返回格式 4.配置认证类和权限类 5.写登录逻辑 5.配路由 JWT的原理及使 ...