selenium的常用方法
1、常用定位方法
find_element_by_id()
find_element_by_name()
find_element_by_class_name()
find_element_by_tag_name()
find_element_by_link_text()
find_element_by_partial_link_text()
find_element_by_xpath()
find_element_by_css_selector()
2、浏览器操作方法
driver.set_window_size(480, 800) 设置宽高
driver.maximize_window() 浏览器最大化
driver.get(url="https://www.baidu.com")访问url
back()、forWord()后退、前进
close() 关闭当前页面
quit() 退出驱动程序,关闭所有页面
3、元素操作方法
clear()清空文本框信息
send_keys()文本框信息输入,也可以执行上传操作
click()点击
submit()提交表单,适合没有提交按钮的情况,比如敲下回车
4、获取元素信息
size 元素尺寸
text 元素文本信息
get_attribute(name)获取属性值
is_displayed() 判断元素是否可见
driver.title页面title
driver.current_url当前页面url
size=driver.find_element_by_id('kw').size
#返回元素的属性值,可以是 id、name、type 或元素拥有的其它任意属性
attribute=driver.find_element_by_id("kw").get_attribute('type')
#返回元素的结果是否可见,返回结果为 True 或 False
result=driver.find_element_by_id("kw").is_displayed()
5、鼠标操作
https://www.cnblogs.com/xinjing-jingxin/p/9299835.html
6、键盘事件
from selenium import webdriver
#引入 Keys 模块
from selenium.webdriver.common.keys import Keys
#输入框输入内容
driver.find_element_by_id("kw").send_keys("seleniumm")
#删除多输入的一个 m
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)
#输入空格键+“教程”
driver.find_element_by_id("kw").send_keys(Keys.SPACE)
driver.find_element_by_id("kw").send_keys(u"教程")
#ctrl+a 全选输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')
#ctrl+x 剪切输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')
#ctrl+v 粘贴内容到输入框
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'v')
#通过回车键盘来代替点击操作
driver.find_element_by_id("su").send_keys(Keys.ENTER)
7、等待:强制等待、隐性等待、显性等待
import time
time.sleep(5) 强制等待5秒
隐性等待
driver.implicitly_wait(5) 隐性等待的周期是整个driver,只需要设置一次即可,每次的执行都会等待
显式等待
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
elm = WebDriverWait(driver,5,1).until(EC.presence_of_element_located(By.ID,"keyword1"))
WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
driver - WebDriver 的驱动程序(Ie, Firefox,Chrome 等)
timeout - 最长超时时间,默认以秒为单位
poll_frequency - 休眠时间的间隔(步长)时间,默认为 0.5 秒
ignored_exceptions - 超时后的异常信息,默认情况下抛 NoSuchElementException 异常。
8、表单切换
switch_to_frame() 一般可以直接通过id或者name定位,也可以xpath方式先定位到iframe,再调用switch_to_frame()
……
#先通过 xpth 定位到 iframe
xf = driver.find_element_by_xpath('//*[@class="if"]')
#再将定位对象传给 switch_to_frame()方法
driver.switch_to_frame(xf)
……
driver.switch_to_default_content()
switch_to_default_content() 回到上一层表单
9、窗口切换
current_window_handle获取当前窗口句柄
windows_handles 获取打开的所有窗口句柄
switch_to_window() 切换到句柄窗口
10、截图
driver.get_screenshot_as_file("D:\\error.jap")
selenium的常用方法的更多相关文章
- Python Selenium Webdriver常用方法总结
Python Selenium Webdriver常用方法总结 常用方法函数 加载浏览器驱动: webdriver.Firefox() 打开页面:get() 关闭浏览器:quit() 最大化窗口: m ...
- Selenium 3----WebDriver常用方法
在学会定位元素的基础上,进行元素的操作. WebDriver常用方法: clear(): 清除文本. send_keys (value): 模拟按键输入. click(): 单击元素. submit( ...
- selenium - webdriver常用方法
先定位元素,定位元素后,需要对元素进行后续操作,单击按钮/输入文本,等等. from selenium import webdriver driver = webdriver.Chrome() dri ...
- python selenium --一些常用方法
· text 获取该元素的文本 · submit 提交表单 · get_attribute 获得属性值 text 用于获取元素的文本信息 下面把百度首页底部的声明打印输出 #coding=u ...
- python selenium API 常用方法
配置使用环境 下载相应的浏览器驱动, Firefox 是默认的 本文以 chrome 为主 ,放在scripts目录下ChromeDriver 官方下载地址 : 所有版本的 ChromeDriver ...
- selenium + phantomJS 常用方法总结
0x01 初始化: dcap = dict(DesiredCapabilities.PHANTOMJS) #一些属性的设置 dcap["phantomjs.page.settings.lo ...
- Selenium API常用方法
driver.findElements()//定位一组List元素集合 driver.findElement()//定位一个元素 driver.getTitle()//获取页面标题 driver.ge ...
- 爬虫-【selenium——webElement常用方法】
a)clear——清除元素的内容 driver.find_element_by_id("**").clesr() b)send_keys——在元素上模拟按键输入 driver.fi ...
- Python爬虫之Selenium的常用方法
1.单个元素的选取 find_element_by_id 通过标签属性Id查找元素 find_element_by_name 通过标签属性name查找元素 find_element ...
随机推荐
- 网页调用本地程序(Windows下浏览器全兼容)
用网页调用本地应用程序的思路是,先进行注册表注册自定义一个URL Protocol协议,再利用URL Protocol实现网页调用本地应用程序. 1.先写一个注册表文件,将其保存为.reg后缀的注册表 ...
- 详解C#泛型(二) 获取C#中方法的执行时间及其代码注入 详解C#泛型(一) 详解C#委托和事件(二) 详解C#特性和反射(四) 记一次.net core调用SOAP接口遇到的问题 C# WebRequest.Create 锚点“#”字符问题 根据内容来产生一个二维码
详解C#泛型(二) 一.自定义泛型方法(Generic Method),将类型参数用作参数列表或返回值的类型: void MyFunc<T>() //声明具有一个类型参数的泛型方法 { ...
- C#:SqlServer操作的知识点
1.检查数据库连接的有效性 var client = new System.Net.Sockets.TcpClient(); var ar = client.BeginConnect(host, ...
- mybatis-spring 项目简介
mybatis-spring 主要是为了解决 spring3.0 中支持 mybatis3.0 1 mybatis-spring 主要包含以下几个部分 数据源 SqlSessionFactory Sq ...
- [Jobdu] 题目1507:不用加减乘除做加法
题目描述: 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 输入: 输入可能包含多个测试样例.对于每个测试案例,输入为两个整数m和n(1<=m,n<=100 ...
- iconv 解决乱码问题
[root@NGINX-APACHE-SVN pro]# file 林.txt 林.txt: ISO-8859 text, with no line terminators #在LINUX下显示乱码 ...
- poj 2524 Ubiquitous Religions 一简单并查集
Ubiquitous Religions Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 22389 Accepted ...
- JSF中获得HTTP SESSION和Request
转载自:http://blog.sina.com.cn/s/blog_872758480100waew.html 为了保持向后兼容,我们有时可能会需要访问session对象.在JSF中可以通过如下方式 ...
- Excel 自定义关闭按钮
遇到过这样一个需求,是在excel关闭的时候,不要excel本身的保存窗口,只用自定义的. 这个的需要第一,是点击关闭时候触发, 第二:触发后,不能还是弹出那个窗口 第三:取消后,要能停止程序 为了弄 ...
- Unix系统编程()深入探究文件IO概述
open调用将引入原子atomicity操作的概念. 将某一系统调用所要完成的各个动作作为不可中断的操作,一次性加以执行. 原子操作是许多系统调用得以正确执行的必要条件. 还介绍一个系统调用fcntl ...