小编整理了目前学习的Python+selenium常用的一些方法函数,以后有新增再随时更新。

  1. 加载浏览器驱动: webdriver.Firefox()

  2. 打开页面:get()

  3. 关闭浏览器:quit()

  4. 最大化窗口: maximize_window()

  5. 设置窗口参数:set_window_size(600,800)

  6. 后退到前一页: back()

  7. 前进到后一页: forward()

  8. 刷新页面: refresh()

  9. 元素定位:

    • 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定位:
    1. 绝对路径:find_element_by_xpath("绝对路径")
    2. 元素属性:find_element_by_xpath("//unput[@id='kw']")
    3. 层级与属性结合:find_element_by_xpath("//form[@id='loginForm']/ul/input[1]")
    4. 逻辑运算符: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 类提供了鼠标操作的常用方法:

    • perform():执行所有ActionsChains中存储的行为
    • context_click():右击
    • double_click():双击
    • drag_and_drop():拖动
    • move_to_element():鼠标悬停

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)的更多相关文章

  1. Python+Selenium(webdriver常用API)

    总结了Python+selenium常用的一些方法函数,以后有新增再随时更新: 加载浏览器驱动: webdriver.Firefox() 打开页面:get() 关闭浏览器:quit() 最大化窗口:  ...

  2. <译>Selenium Python Bindings 6 - WebDriver API

    本章涉及Selenium WebDriver的所有接口. Recommended Import Style 推荐的导入风格如下: from selenium import webdriver 然后,你 ...

  3. Selenium的WebDriver API元素定位中的XPath和CSS

    元素的定位和操作是自动化测试的核心部分,其中操作又是建立在定位的基础上的. 浏览器的常规操作 import time from selenium import webdriver # 打开浏览器 dr ...

  4. Python Selenium 常用方法总结(不断补充)

    还有此篇内容也丰富Selenium常见元素定位方法和操作的学习介绍 selenium Python 总结一些工作中可能会经常使用到的API. 1.获取当前页面的Url 方法:current_url 实 ...

  5. Python Selenium 常用方法总结

    selenium Python 总结一些工作中可能会经常使用到的API. 1.获取当前页面的Url 方法:current_url  实例:driver.current_url    2.获取元素坐标 ...

  6. 转载——Python Selenium 常用方法总结

    selenium Python 总结一些工作中可能会经常使用到的API. 1.获取当前页面的Url 方法:current_url 实例:driver.current_url 2.获取元素坐标 方法:l ...

  7. Python Selenium 之常用API

    Selenium WebDriver下提供许多用来与浏览器.元素.鼠标.键盘.弹框.下拉菜单和列表的交互和设置方法.这些是计算机模拟人工进行自动化测试所必要依赖的方法.下面将用列表的方式总结出常用的A ...

  8. python+selenium中webdriver相关资源

    Chrome chrome的webdriver :  http://chromedriver.storage.googleapis.com/index.html chrome的webdriver需要对 ...

  9. selenium常用webdriver api汇总

    1.driver.current_url:用于获得当前页面的URL 2.driver.title:用于获取当前页面的标题 3.driver.page_source:用于获取页面html源代码 4.dr ...

随机推荐

  1. dubbo中Hessian方法重载问题处理

    dubbo中Hessian方法重载,报出如下错误信息: 十一月 , :: 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Ser ...

  2. DHCP服务简单搭建步骤

    服务端:sishen_63    IP:192.168.1.63 客户端:sishen_64    IP:192.168.1.64 此外,因为本实验实在虚拟机中做的,所以对虚拟机还要做如下设置: 服务 ...

  3. poj3252Round Numbers

    链接 也算是组合 以前按组合做过一次 忘记怎么做的了 这次按dp写的 dp[i][j][g][k] 表示第i位为k(0|1)而且有j个1,g个0的情况数 貌似写的麻烦了...这一类的题,进行逐位计算就 ...

  4. 多线程wait和notify实现1212

    package threadT; public class ThreadMain { public static void main(String args[]) { final Object obj ...

  5. CCF|最大波动|Java|100

    import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Sc ...

  6. python中的格式化字符

    python中的格式化字符在python中我们会遇到一个问题,问题是如何输出格式化的字符串.我们经常会输出类似'亲爱的xxx你好!你xx月的话费是xx,余额是xx'之类的字符串,而xxx的内容都是根据 ...

  7. Scala基础篇-05求值策略

    Scala的求值策略有2种: call by value call by name 如何区分? 例子: def bar(x:Int,y: => Int) = def loop(): Int=lo ...

  8. iPhone4 offical AD

    iPhone4 is so much more than just a new products.I mean this would have a lot of impact on the way i ...

  9. 秦晓波著的编写高质量代码-改善Java程序的151个建议一书中的线程解释错误.

    位置: 建议127: Lock与synchronized是不一样的 首先在概念上纠正这一篇内容: 援引Java源码中关于ReentrantLock的开篇说明: * A reentrant mutual ...

  10. VBA 连接sql server的用法

    cnnstr = "Provider=sqloledb;Data Source=192.211.21.8;Initial Catalog=pub;UID=账号;PWD=密码" VB ...