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 ...
随机推荐
- powerdesigner 画PDM
一.PDM概述 PDM(物理数据模型-Physical Data Modal),通俗地理解,就是在PowerDesigner中以图形化的方式展示和设计数据库. PDM中涉及到的基本概念包括: 表: 列 ...
- DevExpress中chartControl中实现统计图功能
public partial class Form1 : DevExpress.XtraEditors.XtraForm { public Form1() { InitializeComponent( ...
- Python 爬虫实例(6)—— 爬取蚂蚁免费代理
数据库表sql语句: CREATE TABLE `free_ip` ( `free_ip_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `ip` ...
- 带密匙的php加密解密代码
php加密解密示例,代码如下: <?php $id = "http://www.jbxue.com"; $token = encrypt($id, 'E', 'jbxue') ...
- Atitit.故障排除系列-----apache 不能启动的排除
Atitit.故障排除系列-----apache 不能启动的排除 能直接使用cli启动httpd ,,详细打印出信息.. C:\Users\ASIMO>"C:\wamp\apach ...
- 使用tc对linux中某ip段限速
TC 无需安装,Linux 内核自带例:将IP地址段192.168.1.0/24 上传下载限速为 5M将以下内容添加到/etc/ppp/ip-up文件exit 0上面. down=5Mbituploa ...
- 为什么很多大公司继续使用 Objective-C,不用 Swift
为什么很多大公司继续使用 Objective-C,不用 Swift 我觉得这个问题最核心的原因就一点:历史包袱. 猿题库算是比较新兴的应用了,代码量级也是 10 万的级别.很多稍微有些年头的应用, ...
- 获取Oracle数据库中字段信息
select t.DATA_PRECISION,t.DATA_SCALE,t.DATA_LENGTH,t.DATA_TYPE,t.COLUMN_NAME, t.NULLABLE,t.DATA_DEFA ...
- java 清除 bom
参考工具 http://akini.mbnet.fi/java/unicodereader/ Utf8BomRemover 清除bom的方法 package cn.com.do1.component ...
- na+mb与gcd
蒜头君和花椰妹在玩一个游戏,他们在地上将 nn 颗石子排成一排,编号为 11 到 nn.开始时,蒜头君随机取出了 22 颗石子扔掉,假设蒜头君取出的 22 颗石子的编号为 aa, bb.游戏规则如下, ...