# 4. 等待操作

# 强制等待
from time import sleep
sleep(10) # 隐性等待
# 设置最长等待时间,在这个时间在只要有个时间点加载完成,则执行下一步代码,比sleep智能,能够自主判断
# 整个driver的会话周期内,设置一次即可,
driver.implicitly_wait(10) # 显性等待
# 使用WebDriverWait类 和 excepted_conditions模块
# 明确某个条件满足之后,再去执行下一步操作
# 程序每隔XX秒看一眼,如果条件成立了,则执行下一步;否则继续等待,知道超过设置的最长时间,然后抛出TimeoutException。 # (1)WebDriverWait类,显性等待类:
# WebDriverWait(driver,等待时长,循环周期).until/until_not(判断条件)
# A. until方法:表示直到满足XXX条件,就不再等待了(在等待时间范围内)
# B. until_not方法:表示直到不满足XXX条件,就不再等待了
# 判断条件 : 比如等待某个元素可见;等待新的窗口出现,等待元素包含某个文件内容 # (2)expected_conditions模块,提供了一系列期望发生的条件 # A. 使用之前,引入相关的库:
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By # B. 先确定元素的定位表达式
web_locator = 'xxxx' # C. 调用WebDriverWait类设置等待总时长、轮询周期
WebDriverWait(webdriver 对象名,等待总时长,轮询周期).until(判断条件) # D. 使用expected_conditions对应的方法来生成判断条件
# EC.方法名(定位方式,定位表达式)
EC.presence_of_element_located((By.CSS_SELECTOR,web_locator)) # 等待10秒钟,每隔0.5秒去查看login_name对应的元素是否可见;如果可见,等待结果;如果不可见,则继续等待,直到10s结束,如果元素还是不可见,则抛出超时异常
login_name = 'XXXX'
WebDriverWait(driver,10,0.5).until(EC.visibility_of_element_located((By.NAME,login_name)))

selenium - 常用等待操作的更多相关文章

  1. selenium常用命令--操作页面元素及获取元素内容整理

    selenium常用命令之操作页面元素及获取元素内容的事件整理 例子:  /**id <input type="text" id="phone" name ...

  2. selenium - 常用元素操作

    # 3.常用元素操作 # 元素对象的获取ele = driver.find_element_by_XXX('定位表达式') # 获取元素的文本内容(返回值为元素的文本)ele.text # 获取元素的 ...

  3. selenium - 常用页面操作

    # 2.常用页面操作 # 访问某一个页面url = 'http://www.baidu.com'driver.get(url) # 获取页面的标题title = driver.titleprint(t ...

  4. [python]selenium常用的操作

    浏览器 1.火狐浏览器 br = webdriver.Firefox() #最大化窗口br.maximize_window() br.get('http://baidu.com') 2.谷歌浏览器 b ...

  5. selenium 常用浏览器操作API

    package test; import org.openqa.selenium.By;import org.openqa.selenium.Dimension;import org.openqa.s ...

  6. python3+selenium常用语法汇总

    Selenium常用语法总结 一.Selenium常用定位语法 1.元素定位 (1)ID定位元素: find_element_by_id(‘’) (2)通过元素的类名称定位元素: find_eleme ...

  7. 总结Selenium自动化测试方法(四)WebDriver常用的操作

    四.WebDriver常用的操作 1.控制浏览器操作 #控制浏览器的大小 self.driver.set_window_size(480,800) #控制浏览器返回 self.driver.back( ...

  8. Selenium Web 自动化 - Selenium常用API

    Selenium Web 自动化 - Selenium常用API 2016-08-01 目录 1 对浏览器操作  1.1 用webdriver打开一个浏览器  1.2 最大化浏览器&关闭浏览器 ...

  9. selenium常用操作方法

    Webdriver中比较常用的操作元素的方法: clear() 清除输入框的默认内容 send_keys("xxx") 在一个输入框里输入xx内容 ——如果输入中文,则需要在脚本开 ...

随机推荐

  1. 洛谷P3959 宝藏(模拟退火乱搞)

    题意 题目链接 题面好长啊...自己看吧.. Sol 自己想了一个退火的思路,没想到第一次交85,多退了几次就A了哈哈哈 首先把没用的边去掉,然后剩下的边从小到大排序 这样我们就得到了一个选边的序列, ...

  2. Android 第三方库导致jar包冲突解决办法

    这几天的任务是将mapbox的工程合到程序中去,但是合并过程却出现了问题 合并方法: 在app的build.gradle中添加 dependencies { compile ('com.mapbox. ...

  3. [make error ]ubuntu显示不全

    make时候,输出到文件里 make >&makelog 就会自动出现一个makelog 会慢一些,不要急.

  4. Linux下端口被占用如何解决???

    有时候关闭软件后,后台进程死掉,导致端口被占用.下面以JBoss端口8083被占用为例,列出详细解决过程. 解决方法: 1.查找被占用的端口 netstat -tln netstat -tln | g ...

  5. 关于JavaScript的变量和函数提升

    第一种理解方式:let和const不能被使用,直到他们被声明 对于var定义的变量,解析器会提升其到作用域顶部. // Outputs: undefined console.log(x); var x ...

  6. HDU 5451 Best Solver(fibonacci)

    感谢这道题让我复习了一遍线代,还学习了一些奇奇怪怪的数论. 令 二项展开以后根号部分抵消了 显然有 所以要求的答案是 如果n比较小的话,可以直接对二项式快速幂,但是这题n很大 这个问题和矩阵的特征值以 ...

  7. Android(java)学习笔记115:BroadcastReceiver之 Android广播机制

    Android广播机制 android系统中有各式各样的广播,各种广播在Android系统中运行,当"系统/应用"程序运行时便会向Android注册各种广播.Android接收到广 ...

  8. [tensorflow] tf2.0 简单例子

    tf2.0笔记 感觉,都统一了,pytorch tensorflow mxnet,大家都差不多了 gan例子笔记 import tensorflow as tf from tensorflow.ker ...

  9. SG函数入门&&HDU 1848

    SG函数 sg[i]为0表示i节点先手必败. 首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数.例如mex{0,1,2,4}=3. ...

  10. mysql绿色版下载及应用

    一.mysql绿色版下载 第一歩:打开下载网址:https://www.oracle.com 点击Menu-->Database and Technologies-->Databases- ...