一、Selenium(http://www.selenium.org/)

  Web自动化测试工具。它支持各种浏览器,包括Chrome,Safari,Firefox等主流界面式浏览器,如果你在这些浏览器里面安装一个Selenium插件,那么便可以方便的实现Web界面的测试。换句话说叫 Selenium 支持这些浏览器驱动

  模拟浏览器的操作,例如表单操作,点击事件,键盘输入

二、内容

  安装、定位web元素、鼠标操作、键盘输入、窗口切换、cookie操作,调用js代码,窗口截屏,文件上传,警告框处理,多表单切换,等待.....

chrome浏览器驱动:https://sites.google.com/a/chromium.org/chromedriver/downloads

国内阿里云镜像:https://npm.taobao.org/mirrors/chromedriver

https://sites.google.com/a/chromium.org/chromedriver/

三、操作

from selenium import webdriver

wd = webdriver.Chrome()   # 创建一个对象

1. 基础操作

wd.get('http://baidu.com')  # 打开一个网页

title = wd.title  # 获取网页标题

print(title)  # 打印输出

wd.set_window_size(400,800)  # 设置窗口大小

wd.maximize_window()  #窗口最大化

2. 获取元素

wd.find_element_by_link_text('设置').click()  # 获取链接值,并执行点击操作

wd.find_element_by_link_text('搜索设置').click()  # 获取链接值,执行点击操作

sel = wd.find_element_by_xpath('//*[@id="nr"]')  # 通过xpath获取下拉列表

from selenium.webdriver.support.select import Select  # 下拉列表操作的模块

Select('sel').select_by_value('50')  # 更改下拉列表设置

3.多列表切换

实现 mail.126.com 的登录

from selenium import webdriver

import time

wd = webdriver.Chrome()

wd.get('https://mail.126.com/')

# wd.find_element_by_name('email').clear()

# wd.find_element_by_name('email').send_keys('zhanghao') # --- 报错,找不到元素

time.sleep(2)

fr = wd.find_element_by_id('x-URS-iframe')  # 获取表单

wd.switch_to_frame(fr)  # 切换到该表单中

time.sleep(3)

wd.find_element_by_name('email').clear()  # 清空该元素中的值

wd.find_element_by_name('email').send_keys('zhanghao')  # 对改元素发送值:zhanghao

4.窗口关闭

wd.close() 或者 wd.quit()

5.支持无窗口模式

from selenium import webdriver

from selenium.webdriver.chrome.options import Options  # webdriver 选项设置模块

import time

chrome_options = Options()  # 选项初始化

chrome_options.add_argument('--headless')  # 无窗口模式设置

wd = webdriver.Chrome(chrome_options=chrome_options)

wd.get('http://baidu.com')

title = wd.title

print(title)

time.sleep(2)

wd.close()

												

web自动化之selenium的更多相关文章

  1. WEB自动化(Python+selenium)的API

    在做Web自动化过程中,汇总了Python+selenium的API相关方法,给公司里的同事做了第二次培训,分享给大家                                         ...

  2. 技术分享 | Web自动化之Selenium安装

    Web 应用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操作.但是手工执行的任务容易出现人为的错误,也比较费时间.因此,将这些任务自动化,就可以消除人为因素.S ...

  3. web自动化:selenium原理和元素定位(一)

    一. Selenium2 WebDriver 当Selenium2.x提出了WebDriver的概念后,它提供了完全另外的一种方式与浏览器交互 那就是利用浏览器原生的API,封装成一套更加面向对象的S ...

  4. 【python+selenium的web自动化】- Selenium WebDriver原理及安装

    简单介绍 selenium ​ selenium是一个用于测试web网页的自动化测试工具,它直接运行在浏览器中,模拟用户的操作.

  5. web自动化之selenium(三)文件上传

    1.上传标签为input #若上传文件的标签为<input>可以直接定位标签,然后send_keys(文件路径)可以直接上传 2.利用第三方软件Autoit上传 1.下载Autoit:ht ...

  6. web自动化之selenium(二)

    selenium自动化测试框架 一.什么是自动化测试 利用软件(或者说机器代替人)实现全部或者部分测试任务的过程 二.为什么要进行自动化测试 ​ 自动化测试可以完成许多手工测试无法实现或难以实现的功能 ...

  7. web自动化之selenium(一)

    自动化搭建环境 1.自动搭建(一) #安装 pip install webdriver-helper 1.1示例 from webdriver_helper import * #get_webdriv ...

  8. web自动化之selenium(六)利用坐标点定位

    这是通过第三发库实现对元素的定位,因为在无法定位元素的时候,只能通过外部来定位,此时就可以使用pyautogui模块,操作鼠标,模拟人进行操作 # 使用注意事项,不要过于的依赖它 1.使用时需要在通过 ...

  9. web自动化,selenium环境配置

    1,首先我们需要在python编译器中添加selenium插件,我用的是pycharm 点击下方的Terminal,然后在命令行输入: pip install selenium 也可以在设置里面手动添 ...

随机推荐

  1. When you want to give up, remember why you started.

    When you want to give up, remember why you started.当你想要放弃的时候,请记住当初你为何而开始.

  2. iOS中转义后的html标签如何还原

    最近用swift做一个公司的小项目,遇到一个问题,就是通过api获取的html文本中的标签都已经被转义了, <p class="MsoNormal" align=" ...

  3. SQL Server 2012安装配置(Part4 )

    SQL Server 2012安装配置(Part1) SQL Server 2012安装配置(Part2) SQL Server 2012安装配置(Part3 ) SQL Server 2012安装配 ...

  4. LoadRunner使用(1)

    一.LoadRunner脚本录制 LoadRunner测试分为两个步骤: 第一步:录制脚本,其实就是监控并记录这段时间发送的HTTP请求 第二步:启动多个线程,用录制的脚本,模拟多线程发送请求. (1 ...

  5. linux概念和体系

    1. Linux开机启动 2. Linux文件管理 3. Linux的架构 4. Linux命令行与命令 5. Linux文件管理相关命令 6. Linux文本流 7. Linux进程基础 8. Li ...

  6. UVA 10537 Toll! Revisited (逆推,最短路)

    从终点逆推,d[u]表示进入u以后剩下的货物,那么进入u之前的货物数量设为y,d[u] = x,那么y-x=ceil(y/20.0)=(y-1)/20+1=(y+19)/20. (y-x)*20+r= ...

  7. Spark性能调优之道——解决Spark数据倾斜(Data Skew)的N种姿势

    原文:http://blog.csdn.net/tanglizhe1105/article/details/51050974 背景 很多使用Spark的朋友很想知道rdd里的元素是怎么存储的,它们占用 ...

  8. [大坑]Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR

    报错tensorflow/stream_executor/cuda/cuda_dnn.cc:338] Could not create cudnn handle: CUDNN_STATUS_INTER ...

  9. [Java] 新手快速就业需要掌握的知识点

    目的:主要是分享下日常工作中使用到的技术点,根据二八定律快速掌握使用知识点,先就业再沉淀去积累经验.(个人建议仅供参考) 背景:目前一般来说,都是前后端分离.你只需要提供接口给前端,他来处理就可以了, ...

  10. wxWidgets:处理wxEVT

    我们仍然以继承于wxFrame的MyFrame作为例子. MyFrame.h: class MyFrame : public wxFrame { ...... private: ...... void ...