首先,我是基于python进行对selenium操作和使用的,主要分为selenium的实现原理和selenium的操作这两大部分的简单分享(由于本人水平有限,仅做基础的概述和总结):

一、selenium原理(selenium1—>selenium2—>selenium3):

1.对于每个Selenium脚本的命令,都会创建一个HTTP请求并将其发送到浏览器驱动程序;

2.每一个命令的执行结果都会返回给自动化代码;

3.ChromeDirver创建session时打开了浏览器,Selenium代码和浏览器驱动的交互都根据ChromeDriver创建的sessionId。

版本的发展有selenium1—>selenium2—>selenium3:

selenium各版本简介
 版        本 版 本 特 点 版  本  功  能
 selenium1  selenium IDE+selenium Grid+selenium RC(核心) selenium RC包括selenium server和client libraries,selenium server用来操作浏览器,client libraries用来编写测试脚本,RC是执行浏览器中的JavaScript来翻译执行selenium脚本的代码命令。
 selenium2  selenium1+webDriver(核心) webDriver通过原生浏览器支持或者浏览器扩展来直接控制浏览器。
 selenium3  selenium2-seleniumRC 增加支持了一些系统和版本,主要还是webDriver。

二、selenium实现(基于python编写):

 #coding:utf-8
from selenium import webdriver def main():
#设置参数访问url
url = 'http://www.zhilian.com/'
#创建webDriver对象,操作火狐浏览器
driver = webdriver.Firefox()
driver.get(url)
#隐形等待10S
implicitly_wait(10)
#定位元素,操作元素
driver.find_element_by_id('kw').send_keys('Python')
implicitly_wait(5)
driver.find_element_by_id('su').click()
#退出
driver.quit() if __name__ == "__main__":
main()

其中selenium中元素定位的方式有:

1.id 不重复(常用)
2.name 重复
3.class_name 类名
4.tag_name 标签名

5.link_text / partial_link_text 链接文本

6.Xpath XML元素路径(常用)
7.Css CSS选择器

其中selenium的一些常用操作:

(1)模拟鼠标的移动事件:
from selenium import webdriver
# 模拟鼠标的类包
from selenium.webdriver.common.action_chains import ActionChains
"""
鼠标对应操作方法:
context_click():右击事件 double_click():双击事件
drag_and_drop():拖动事件 move_to_element():鼠标停留在一个元素上
click_and_hold:按下鼠标左键停留在一个元素上
"""
# 导入键盘类
from selenium.webdriver.common.keys import Keys
"""
键盘对应对应的方法:
send_keys(Keys.BACK_SPACE) 退格键
send_keys(Keys.CONTRL,'a'): 全选,'c/v/x'分别复制粘贴剪切
send_keys(Keys.ENTER): 回车
"""

FireFox浏览器中有一款适合元素定位的插件firebug比较好用;

(2)处理多窗口和alter弹窗:

用到switch_to_alter();

---------------------------------------------------------------------------

只是个人平时的总结和分享,欢迎批评指正。

简述-selenium对web实现自动化测试的更多相关文章

  1. 使用python+selenium对web进行自动化测试

    想用python代码,对web网页进行自动化测试 web自动化测试和手动测试的区别: 手动测试:通过手动去对网页的功能进行点点点 web自动化:可以通过代码,自动对网页点点点 首先,将python+s ...

  2. 转载 基于Selenium WebDriver的Web应用自动化测试

    转载原地址:  https://www.ibm.com/developerworks/cn/web/1306_chenlei_webdriver/ 对于 Web 应用,软件测试人员在日常的测试工作中, ...

  3. Node.js结合Selenium做Web自动化测试

    发现腾讯课堂上有个node.js结合Selenium做Web自动化测试的教学视频, 听来感觉不错,一来老师讲的还不错,二来node.js这门语言会越来越热,学会总没什么坏处,三来发现CukeTest这 ...

  4. Selenium的Web自动化测试(送源码)

    8.1  Selenium自动化测试准备 1.Selenium介绍 Selenium是一个Web开源自动化测试框架,页面级操作,模拟用户真实操作,API从系统层面触发事件. Selenium 1.0  ...

  5. Selenium 2.0 WebDriver 自动化测试 使用教程 实例教程 API快速参考

    Selenium 2.0 WebDriver 自动化测试 使用教程 实例教程 API快速参考 //System.setProperty("webdriver.firefox.bin" ...

  6. web前端自动化测试/爬虫利器puppeteer介绍

    web前端自动化测试/爬虫利器puppeteer介绍 Intro Chrome59(linux.macos). Chrome60(windows)之后,Chrome自带headless(无界面)模式很 ...

  7. 基于Selenium的web自动化框架

    转自 : https://www.cnblogs.com/AlwinXu/p/5836709.html 1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台. ...

  8. [原创]浅谈Web UI自动化测试

    [原创]浅谈Web UI自动化测试 Web UI自动化测试相信大家都不陌生,今天来谈谈这个,我最早接触自动化测试时大约是在2004年,2006年当时在腾讯财付通算是开始正式接触自动化测试,之所以是正式 ...

  9. 【转】基于Selenium的web自动化框架(python)

    1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.Sel ...

随机推荐

  1. 第二章python中的一切皆对象

    1.函数和类也是对象,属于python的一等公民 赋值给一个变量 可以添加到集合对象之中 可以作为参数传递给函数 可以当作函数的返回值 def ask(name="ask_wzh" ...

  2. python3中“->”的含义

    ->:标记返回函数注释,信息作为.__annotations__属性提供 __annotations__属性是字典.键return是用于在箭头后检索值的键.但是在Python中3.5,PEP 4 ...

  3. SpringBoot之邮件服务

    springboot 邮件服务 今天在看网上学习微服务的时候顺遍看到了一些关于springboot的文章,写的springboot拓展功能就顺遍学习了一下,接下来给大家分享一下springboot封装 ...

  4. nodejs进程管理

    NodeJS可以感知和控制自身进程的运行环境和状态,也可以创建子进程并与其协同工作,这使得NodeJS可以把多个程序组合在一起共同完成某项工作,并在其中充当胶水和调度器的作用. 我们已经知道了Node ...

  5. Java 并发系列之三:java 内存模型(JMM)

    1. 并发编程的挑战 2. 并发编程需要解决的两大问题 3. 线程通信机制 4. 内存模型 5. volatile 6. synchronized 7. CAS 8. 锁的内存语义 9. DCL 双重 ...

  6. Spring Boot进阶系列三

    Thymeleaf是官方推荐的显示引擎,这篇文章主要介绍怎么让spring boot整合Thymeleaf.  它是一个适用于Web和独立环境的现代服务器端Java模板引擎. Thymeleaf的主要 ...

  7. BitSet源码

    public class BitSet1 implements Cloneable, java.io.Serializable { // >>>左边补0, << 右边补0 ...

  8. CSS3移动端vw+rem不依赖JS实现响应式布局

    1.前言 (1)vw/vh介绍 在使用之前,我们先简单了解一下什么是vw和rem以及它们的作用,vw是css3出现的一个新单位,它是"view width"缩写,定义为把当前屏幕分 ...

  9. Sitecore 9 您应该了解的所有新功能和变化

    信不信由你,当我谈论Sitecore时,我感到非常兴奋.这是一个充满潜力和机遇的伟大平台 如果你能想象一个刚刚进行过一次双重训练的人,一个特大号的星巴克,并且刚刚在创纪录的时间内完成了中国忍者勇士的障 ...

  10. yum 多线程插件,apt多线程插件

    1.安装yum-axelget插件,默认 yum使用单线程下载,安装该插件后,会使用多线程下载. yum -y install yum-axelget 2. apt-fast安装 https://gi ...