总结了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. 获得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
  10. 元素定位:

    • 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 类提供了鼠标操作的常用方法:

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

  1. Python Selenium 之常用API

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

  2. Selenium WebDriver 常用API

    public class Demo1 { WebDriver driver; @BeforeMethod public void visit(){ //webdriver对象的声明 System.se ...

  3. Python+Selenium+webdriver环境搭建(windows)以及相关资源下载链接

    今天记录一下测试小菜鸟alter在测试入门的一点关于python+Selenium+webdriver环境搭建的经历以及资源分享.欢迎交流学习,批评指正. 一.Python的下载与安装 1.pytho ...

  4. python selenium webdriver入门基本操作

    python selenium webdriver入门基本操作 未经作者允许,禁止转载! from selenium import webdriver import time driver=webdr ...

  5. Python Selenium Webdriver常用方法总结

    Python Selenium Webdriver常用方法总结 常用方法函数 加载浏览器驱动: webdriver.Firefox() 打开页面:get() 关闭浏览器:quit() 最大化窗口: m ...

  6. Python+Selenium WebDriver API:浏览器及元素的常用函数及变量整理总结

    由于网页自动化要操作浏览器以及浏览器页面元素,这里笔者就将浏览器及页面元素常用的函数及变量整理总结一下,以供读者在编写网页自动化测试时查阅. from selenium import webdrive ...

  7. Python + Selenium WebDriver Api 知识回顾

    一直再用 Selenium WebDriver 但是用的都比较零散,也没有做过总结,今天借此机会,整理一下,方便大家使用时查阅 webDriver  的属性 ['CONTEXT_CHROME', 'C ...

  8. python selenium 基本常用操作

    最近学习UI自动化,把一些常用的方法总结一下,方便自己以后查阅需要.因本人水平有限,有不对之处多多包涵!欢迎指正! 一.xpath模糊匹配定位元素 武林至尊,宝刀屠龙刀(xpath),倚天不出(css ...

  9. windows操作系统python selenium webdriver安装

    这几天想搞一个爬虫,就来学习一下selenium,在网上遇见各种坑,特写一篇博文分享一下selenium webdriver的安装过程. 一.安装selenium包 pip install selen ...

随机推荐

  1. hibernate缓存机制(转载)

    缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能.缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事 ...

  2. 螺旋折线——第九届蓝桥杯C语言B组(省赛)第七题

    原创 如图p1.png所示的螺旋折线经过平面上所有整点恰好一次. 对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度. 例如dis(0, 1)=3, ...

  3. JavaScript - this详解 (三)

    闭包 this 执行上下文决定了变量作用域 而闭包,它其实是一种决策,是一种模式,让我们可以灵活的改变变量作用域. 按惯例,上栗子 var global = 'global';function out ...

  4. 记一次阿里云linux病毒清理过程

    1.起因   因为这台服务器是我们公司内部开发服务器,几乎每个人都有root密码.在两天前突然有同事反馈说偶尔会有ssh连不上,git代码无法提交的问题,刚开始也没有在意,以为是阿里云服务器网络波动的 ...

  5. Nginx根据用户请求的不同参数返回不同的json值

    用户请求url:http://localhost:8000/getconfig?v=1.03.01,根据参数v=1.03.01或者其他的值返回不同的json值.如果用户请求不带该参数,则返回默认的js ...

  6. MFC多线程详细讲解(转)

    一.问题的提出 编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX ...

  7. 自己动手设计并实现一个linux嵌入式UI框架(设计)

    看了"自己动手设计并实现一个linux嵌入式UI框架"显然没有尽兴,因为还没有看到庐山真面目,那我今天继续,先来说说,我用到了哪些知识背景.如:C语言基础知识,尤其是指针.函数指针 ...

  8. C# 读Autofac源码笔记(1)

    最近在看Autofac的源码. Autofac据说是.net中最快的IOC框架,具体没有实验,于是看看Autofac具体是怎样实例化实体.   image.png 如上图所示,Autofac使用的是表 ...

  9. Selenium爬取元素下子元素方法

    Selenium提供了一下方法来定义一个页面中的元素: find_element_by_id find_element_by_name find_element_by_xpath find_eleme ...

  10. winform datagridview记录的颜色设定

    DataGridViewCellStyle属性进行如下图的设置,预览可直接看到效果