Python+Selenium(webdriver常用API)
总结了Python+selenium常用的一些方法函数,以后有新增再随时更新:
加载浏览器驱动: webdriver.Firefox()
打开页面:get()
关闭浏览器:quit()
最大化窗口: maximize_window()
设置窗口参数:set_window_size(600,800)
后退到前一页: back()
前进到后一页: forward()
刷新页面: refresh()
获得title并打印
# coding:utf-8
from selenium import webdriver
title = driver.title
print title
#拿当前title名称进行预期比较
if title == u"百度一下,你就知道":
print "title yes!"
else:
print "title no!" #获得当前URL并打印
url = driver.current_url
print url
元素定位:
- id定位:find_element_by_id()
- name定位:find_element_by_name()
- class定位:find_element_by_class()
- tag定位:find_element_by_tag_name()
- link定位:find_element_by_link_text()
- partial link 定位: find_element_by_partial_link_text()
- Xpath定位:
- 绝对路径:find_element_by_xpath("绝对路径")
- 元素属性:find_element_by_xpath("//unput[@id='kw']")
- 层级与属性结合:find_element_by_xpath("//form[@id='loginForm']/ul/input[1]")
- 逻辑运算符:find_element_by_xpath("//input[@id='kw' and@class='s_ipt']")
- CSS定位:find_element_by_css_selector()
|
选择器 |
例子 |
描述 |
|
.class |
.intro |
Class选择器,选择class=“intro”的所有元素 |
|
#id |
#firstname |
Id选择器,选择id=“firstname”的所有元素 |
|
* |
* |
选择所有元素 |
|
Element |
P |
元素所有<p>元素 |
|
Element>element |
div>input |
选择父元素为<div>元素之后的所有<input>元素 |
|
Element+element |
Div+input |
选择同一级中紧接在<div>元素之后的所有<input>元素 |
|
[attribute=value] |
[target=_blank] |
选择target=”_blank”的所有元素 |
10.清除文本:clear()
11.模拟按键输入:send_keys(*value)
12.单击元素:click()
13.提交表单(相当于"回车"):submit()
14.鼠标事件:
ActionChains 类提供了鼠标操作的常用方法:
引入ActionChains类:from selenium.webdriver.common.action_chains import ActionChains
- perform():执行所有ActionsChains中存储的行为
context_click() 右击
——如:RightClick = driver.find_element_by_id("id")
ActionChains(driver).context_click(RightClick).perform()
double_click() 双击
——如:DoubleClick = driver.find_element_by_name("name")
ActionChains(driver).double_click(DoubleClick).perform()
drag_and_drop(source, target) 鼠标拖放
——source:鼠标按下的源元素;target:鼠标释放的目标元素
——如:element = driver.find_element_by_name("name")
target = driver.find_element_by_name("name")
ActionChains(driver).drag_and_drop(element, target).perform()
move_to_element() 鼠标悬停在一个元素上(出现下拉列表框)
——如:above = driver.find_element_by_xpath("xpath路径")
ActionChains(driver).move_to_element(above).perform()
click_and_hold() 按下鼠标左键在一个元素上
——如:left = driver.find_element_by_name("name")
ActionChains(driver).click_and_hold(left).perform()
Python代码:

# 引入ActionChains类
from selenium.webdriver.common.action_chains import ActionChains
# ......
# 定位到要右击的元素
element=driver.find_element_by_css_selector("#kw")
#右击操作
ActionChains(driver).context_click(element).perform()
# ......

15.键盘事件:
|
send_keys(Keys.BACK_SPACE) |
删除键(BackSpace) |
|
send_keys(Keys.SPACE) |
空格键(Space) |
|
send_keys(Keys.TAB) |
制表键(Tab) |
|
send_keys(Keys.ESCAPE) |
回退键(Esc) |
|
send_keys(Keys.eNTER) |
回车键(Enter) |
|
send_keys(Keys.CONTROL,'a') |
全选(Ctrl+A) |
|
send_keys(Keys.CONTROL,'c') |
复制(Ctrl+C) |
|
send_keys(Keys.CONTROL,'x') |
剪切(Ctrl+X) |
|
send_keys(Keys.CONTROL,'v') |
粘贴(Ctrl+(Ctrl+A)) |
|
send_keys(Keys.F1) |
键盘F1 |
|
…… |
|
|
send_keys(Keys.F12) |
键盘F12 |
Python代码:
# 引入Key模块
from selenium.webdriver.common.keys import Keys
# ......
# ctrl+a全选输入框内容
driver.find_element_by_css_selector("#kw").send_keys(Keys.CONTROL,'a')
# ......
16.元素等待:
(1)显示等待
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# ......
element=WebDriverWait(driver,5,0.5).until(EC.presence_of_element_located((By.ID,'kw')))
# ......
(2)隐式等待
from selenium.common.exceptions import NoSuchElementException
# ......
drive.implicitly_wait(10)
# ......
17.定位一组元素:
- find_elements_by_id()
- find_elements_by_name()
- find_elements_by_class()
- find_elements_by_tag_name()
- find_elements_by_link_text()
- find_elements_by_partial_link_text()
- find_elements_by_xpath()
- find_elements_by_css_selector()

# 通过tag name定位元素:driver.find_elements_by_tag_name('option')[1].click()
# 通过xpath定位元素:
driver.find_elements_by_xpath("//input[@type='checkbox']")
# 通过css定位元素:
driver.find_elements_by_css_selector('input[type=checkbox]')
# 使用selector:
slector=Select(driver.find_element_by_css_selector("[name='CookieDate']"))
slector.select_by_index(1)
# slector.select_by_visible_text("留一年")
# slector.select_by_value("1")

18.多表单切换:switch_to.frame()
19.多窗口切换:switch_to.window()
当前句柄:current_window_handle
所有句柄:window_handles
20.警告框处理:switch_to_alert()
- text:返回所有alert/confirm/prompt中的文字信息
- accept():接受现有警告框
- dismiss():解散现有警告框
- send_keys(keysToSend):发送文本至警告框
21.文件上传:send_keys()
driver.find_element_by_css_selector(".uploadpic").send_keys(r'E:\picture\s.png')
22.cookie处理:
- get_cookies():获得所有cookie信息
- get_cookie(name):返回字典的key为“name”的cookie信息
- add_cookie(cookie_dict):添加cookie。“cookie_dict”指字典对象,必须有name和value值
- delete_cookie(name,optionsString):删除cookie信息。“name”是要删除的cookie的名称,“optionsString”是该cookie的选项,目前支持的选项包括“路径”,“域”
- delete_all_cookies():删除所有cookie信息
23.滚动条设置(2种方式):

# 使用scrollTop滑动到底部
js = "var action=document.documentElement.scrollTop=10000"
driver.execute_script(js)
# 使用scrollTo设置位置
driver.set_window_size(600, 600)
js = "window.scrollTo(100,450);"
driver.execute_script(js)

24.窗口截图:get_screenshot_as_file()
25.关闭窗口:close()
26.生成随机数:radint()
Python+Selenium(webdriver常用API)的更多相关文章
- Python Selenium 之常用API
Selenium WebDriver下提供许多用来与浏览器.元素.鼠标.键盘.弹框.下拉菜单和列表的交互和设置方法.这些是计算机模拟人工进行自动化测试所必要依赖的方法.下面将用列表的方式总结出常用的A ...
- Selenium WebDriver 常用API
public class Demo1 { WebDriver driver; @BeforeMethod public void visit(){ //webdriver对象的声明 System.se ...
- Python+Selenium+webdriver环境搭建(windows)以及相关资源下载链接
今天记录一下测试小菜鸟alter在测试入门的一点关于python+Selenium+webdriver环境搭建的经历以及资源分享.欢迎交流学习,批评指正. 一.Python的下载与安装 1.pytho ...
- python selenium webdriver入门基本操作
python selenium webdriver入门基本操作 未经作者允许,禁止转载! from selenium import webdriver import time driver=webdr ...
- Python Selenium Webdriver常用方法总结
Python Selenium Webdriver常用方法总结 常用方法函数 加载浏览器驱动: webdriver.Firefox() 打开页面:get() 关闭浏览器:quit() 最大化窗口: m ...
- Python+Selenium WebDriver API:浏览器及元素的常用函数及变量整理总结
由于网页自动化要操作浏览器以及浏览器页面元素,这里笔者就将浏览器及页面元素常用的函数及变量整理总结一下,以供读者在编写网页自动化测试时查阅. from selenium import webdrive ...
- Python + Selenium WebDriver Api 知识回顾
一直再用 Selenium WebDriver 但是用的都比较零散,也没有做过总结,今天借此机会,整理一下,方便大家使用时查阅 webDriver 的属性 ['CONTEXT_CHROME', 'C ...
- python selenium 基本常用操作
最近学习UI自动化,把一些常用的方法总结一下,方便自己以后查阅需要.因本人水平有限,有不对之处多多包涵!欢迎指正! 一.xpath模糊匹配定位元素 武林至尊,宝刀屠龙刀(xpath),倚天不出(css ...
- windows操作系统python selenium webdriver安装
这几天想搞一个爬虫,就来学习一下selenium,在网上遇见各种坑,特写一篇博文分享一下selenium webdriver的安装过程. 一.安装selenium包 pip install selen ...
随机推荐
- Atcoder 2159 連結 / Connectivity(并查集+map乱搞)
問題文N 個の都市があり.K 本の道路と L 本の鉄道が都市の間に伸びています. i 番目の道路は pi 番目と qi 番目の都市を双方向に結び. i 番目の鉄道は ri 番目と si 番目の都市を双 ...
- Mysql自动设置时间(自动获取时间,填充时间)
应用场景: 1.在数据表中,要记录每条数据是什么时候创建的,不需要应用程序去特意记录,而由数据数据库获取当前时间自动记录创建时间: 2.在数据库中,要记录每条数据是什么时候修改的,不需要应用程序去特意 ...
- Delphi xe5如何使用Bluestacks模拟器(用真机或者用猩猩,夜神模拟器,自带的不好用)
首先,关于这个模拟器问题比较纠结,这是一个关于adb的问题. Delphi XE5会自动识别模拟器和真机,但是你必须先打开模拟器在打开Delphi IDE(Delphi开发环境),否则还得麻烦一会儿. ...
- sql 统计常用的sql
统计常用的sql 统计常用的sql语句: 今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:s ...
- Javascript中的闭包(转载)
前面的话: 闭包,是 javascript 中重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它.下面是作者从作用域链慢慢讲到 ...
- 教你制作高逼格的技术分享Keynote(PPT)
本文来自 网易云社区 . 作为一个程序猿/媛,想必大家都参与过大大小小各式各样的技术分享,异或在不同的场合分享自己的技术心得.抛开分享内容的质量不谈,笔者发现通常这些分享者的演示文稿(Keynot或P ...
- 爬虫开发7.scrapy框架简介和基础应用
scrapy框架简介和基础应用阅读量: 1432 scrapy 今日概要 scrapy框架介绍 环境安装 基础使用 今日详情 一.什么是Scrapy? Scrapy是一个为了爬取网站数据,提取结构性数 ...
- 爬虫开发6.selenuim和phantonJs处理网页动态加载数据的爬取
selenuim和phantonJs处理网页动态加载数据的爬取阅读量: 1203 动态数据加载处理 一.图片懒加载 什么是图片懒加载? 案例分析:抓取站长素材http://sc.chinaz.com/ ...
- centos7 修改主机名(hostnamectl)
hostnamectl 是在 centos7 中新增加的命令,它是用来修改主机名称的,centos7 修改主机名称会比以往容易许多. 用法 # hostnamectl -h -h --help 显示帮 ...
- linux命令提示符[root@localhost ~]#详解
[root@localhost ~]# 1. @之前代表当前登录用户 在Linux中管理员用户是root,还有一些普通用户: 在此例中,root代表当前登录用户 2. @之后代表当前计算机主机 ...