首先,我是基于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 paramiko与linux的连接

    两种使用paramiko连接到linux服务器的代码 方式一: 1 ssh = paramiko.SSHClient() 2 ssh.set_missing_host_key_policy(param ...

  2. 深入js系列-语法

    语法 语句和表达式 我们用英语的术语来说明它们的区别 "句子"(sentence)是完整表达某个意思的一组词,由一个或多个"短语"(phrase)组成,它们之间 ...

  3. Spring Boot 知识笔记(全局异常)

    通过ControllerAdvice和ExceptionHandler捕获异常和错误信息,向前端返回json格式的状态码及异常描述信息. 1.新建一个Controller,抛出一个异常. packag ...

  4. Shell脚本之五 基本运算符

    Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 ...

  5. Qt应用开发所需

    Qt判断当前操作系统? 可使用宏判断,例如: #ifdef Q_OS_MAC //mac ... #endif #ifdef Q_OS_LINUX //linux ... #endif #ifdef ...

  6. 《Linux就该这么学》培训笔记_ch23_使用OpenLDAP部署目录服务

    <Linux就该这么学>培训笔记_ch23_使用OpenLDAP部署目录服务 文章主要内容: 了解目录服务 目录服务实验 配置LDAP服务端 配置LDAP客户端 了解目录服务 其实目录可以 ...

  7. 解决 ImportError: cannot import name 'initializations' from 'keras' (C:\Users\admin\AppData\Roaming\Python\Python37\site-packages\keras\__init__.py)

    解决 ImportError: cannot import name 'initializations' from 'keras' : [原因剖析] 上述代码用的是 Keras version: '1 ...

  8. Image动画

    前几课讲的静态Image挺有趣的,但是如果能有动画的效果,那就更有趣了,mPython做出动画效果也不难.用images的列表,list. 下面就是一个列表: eggs bacon tomatoes ...

  9. StringToKenizer和Scanner的区别

    相同点: StringToKenizer类和Scanner类都可用于分解字符序列中的单词! 不同点: StringToKenizer类把分解出的全部字符串都存放到StringToKenizer对象的实 ...

  10. SpringCloud 基础

    目录 SpringCloud 基础 一.概述 二.服务发现组件 Eureka 1. 介绍 2. 搭建 Maven 父工程 3. 创建 Eureka 集群 4. 创建服务提供方集群 5. 创建服务消费方 ...