selenium初次接触-1
10月30日
web自动化测试的两种方式:模拟整个http客户端(压力测试,取代浏览器和人,直接和服务端进行交互),模拟用户操作(功能测试,取代人)
selenium是自动化浏览器的工具包,可以用于各个方面:web测试自动化,日常的web操作
是web应用的源头(浏览器)驱动应用
使用非常广泛:主流浏览器厂商的支持
控制成本、提高效率
selenium工具包:RC(remote control server,selenium1);web driver (selenium 2、3),selenium IDE 图形界面工具;
selenium Grid:可以用来在多台机器上同时执行selenium自动测试,要执行的测试用例非常多,其中某些测试非常耗时
HTML
HTML是用户创建网页的标准标记语言
HTML是超文本标记语言(Hyper Text Markup Language)
HTML不是一种编程语言,而是一种标记语言(mark language)
是用来描述网页的一种语言
是HTML页面由HTML元素构建而成的
HTML元素由标签表示‘
浏览器分析HTML从而呈现页面的内容(渲染render)
HTML元素是用标签来表示的:尖括号包围元素名称形成了html标签,HTML标签通常是成对出现的,比如<b>和</b>,标签对中的第一个标签是开始标签,第二个标签是结束标签,有的标签里面可以包含其他的标签,比如html,head、body等
HTML文档:以<!DOCTYPE>声明开头,以<html>开始,以</html>结尾,可见部分内容在<body>和</body>之间
标题和段落
HTML标题:标题是通过<h1>-<h6>等标签进行定义的,<h1>定义最大的标题,<h6>定义最小的标题
段落:<p>
html在线测试工具:http://www.w3school.com.cn/tiy/t.asp?f=html_intro
http://www.w3school.com.cn/html/html_headings.asp
HTML元素的属性:属性为HTML元素提供附件的信息
例子:HTML链接
由<a>标签定义。链接的地址在href属性中指定
<a href="http://www.w3school.com.cn/">Visit W3School</a>
属性总是在HTML元素的开始标签中规定,属性总是以名称/值对的形式出现,比如:name = “value”
一个元素可以有很多的属性:<a id ='baidulink' href="http://www.baidu.com" style = "color:red"> This is a link</a>
id 是非常特殊的属性,它用来唯一的标志这个元素
标准元素都有其规定的合法属性
样式(style)属性:style属性告诉浏览器,元素显示的特点,比如说,背景色、前景色、字体、尺寸、缩进、上下左右间距等
style属性提供了一种改变所有HTML元素的样式的通用方法,
<tagname style:"property1:value1;property2:valuse2;">
<p style = "font-family:verdana;color:red">
一些常用的元素:img、table、div
WebDriver原理 :selenium WebDriver提供了web自动化的各种语言调用接口库,通过各种浏览器的驱动(web drive)来驱动浏览器
可以有多个子属性和值,属性之间用;隔开,包括很多控制显示特性的:背景颜色,字体、颜色和尺寸,文本对齐
版本与支持
selenium WebDriver 包括selenium 2 和selenium 3:调用接口几乎没有区别,selenium2 是selenium组织帮各种浏览器写web driver的,selenium3 里面的web driver是由各个浏览器厂商自己提供的,selenium3 的自动化效率更高
selenium WebDriver支持的浏览器众多
安装:
客户端库的安装:支持各种语言:java 、csharp、python、ruby、php、js、perl,python:pip install selenium (python安装:https://github.com/jcyrss/songqin-testdev/blob/master/python/python_install.md)
各浏览器driver:下载最新浏览器
一个例子
百度输入 博客园 ,进行搜索
WebDriver 实例对象
WebElement 实例对象
find_element_by_XXX 查找对象
重点:找到元素(根据浏览器deverlop tool查看元素id),操作元素
代码
form selenium import webdirver
#指定是chrome的驱动
#执行到这里的时候Selenium会去到指定的路径将chrome dirver 程序运行起来
driver = webdriver.Chrome(r"d:\chromedriver.exe路径”)
#get方法打开指定网址
driver.get('http://www.baidu.com')
#查找到那个搜索输入栏网页元素,返回一个表示该元素的WebElement对象
element_keyword = driver.find_element_by_id(''kw")
#输入字符
element_keyword.send_keys(u'博客园‘)
#找到搜索按钮
element_search_button = driver.find_element_by_id(“su”)
#点击该元素
element_search_button.click()
#********************************************
import time
time.sleep(2) 加上时间,因为浏览器运行需要时间,程序的执行较快,可能页面加载不出来造成找不到匹配页面
ret = driver.find_element_by_id('1')
print(ret.text)
if ret.text.startswitch('博客园-开发者的网上家园...'):
print (‘测试通过’)
else:
print ('测试不通过’)
#*****************************************************
#最后,driver.quit让浏览器和驱动进程一起退出,不然会有好几个实例一起运行
driver.quit()
Selenium 给了我们操作页面的接口
UI自动化要素:模拟用户的输入,获取检查界面输出的内容
selenium初次接触-1的更多相关文章
- 初次接触json...
这两天发现很多网站显示图片版块都用了瀑布流模式布局的:随着页面滚动条向下滚动,这种布局还会不断加载数据并附加至当前尾部.身为一个菜鸟级的程序员,而且以后可能会经常与网站打交道,我觉得我还是很有必要去尝 ...
- 初次接触GWT,知识点总括
初次接触GWT,知识点概括 前言 本人最近开始研究 GWT(Google Web Toolkit) ,现将个人的一点心得贴出来,希望对刚开始接触 GWT的程序员们有所帮助,也欢迎讨论,共同进步. 先说 ...
- [Docker]初次接触
Docker 初次接触 近期看了不少docker介绍性文章,也听了不少公开课,于是今天去官网逛了逛,发现了一个交互式的小教程于是决定跟着学习下. 仅仅是把认为重点的知识记录下来,不是非常系统的学习和笔 ...
- 初次接触:DirectDraw
第六章 初次接触:DirectDraw 本章,你将初次接触DirectX中最重要的组件:DirectDraw.DirectDraw可能是DirectX中最强大的技术,因为其贯穿着2D图形绘制同时其帧缓 ...
- 初次接触scrapy框架
初次接触这个框架,先订个小目标,抓取QQ首页,然后存入记事本. 安装框架(http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/install.html) ...
- javaweb中的乱码问题(初次接触时写)
javaweb中的乱码问题 在初次接触javaweb中就遇到了乱码问题,下面是我遇到这些问题的解决办法 1. 页面乱码(jsp) 1. 在页面最前方加上 <%@ page language=&q ...
- 初次接触Java
今天初次接触Eclipse,学着用他来建立java工程,话不多说,来看看今天的成果! 熟悉自己手中的开发工具,热热身 刚上手别慌,有问题找度娘 刚刚拿到这个软件的安装包我是一脸懵逼的,因为是从官网下载 ...
- -1.记libgdx初次接触
学习一门技术最难的是开发环境变量配置和工具配置,以下为我初次接触libgdx时遇到的问题 几个难点记录下 gradle 直接用下到本地,然后放到d盘,链接到就行(gradle-wrapper.prop ...
- tensorflow初次接触记录,我用python写的tensorflow第一个模型
tensorflow初次接触记录,我用python写的tensorflow第一个模型 刚用python写的tensorflow机器学习代码,训练60000张手写文字图片,多层神经网络学习拟合17000 ...
随机推荐
- java高并发编程(四)高并发的一些容器
摘抄自马士兵java并发视频课程: 一.需求背景: 有N张火车票,每张票都有一个编号,同时有10个窗口对外售票, 请写一个模拟程序. 分析下面的程序可能会产生哪些问题?重复销售?超量销售? /** * ...
- Underscore.js部分讲解
underscore是非常好用的封装库,大小只有4KB,大多插件都是以underscore为基础: underscore分5大部分:集合:数组:函数:对象:工具 集合:集合就是伪数组,虽然长的和数组一 ...
- MySQL数据库order by 奇慢无比
今天遇到个奇葩的问题, sql 数据量很大 有where 和order by,不加order by 速度很快,加了就很慢 一.首先我们对这条sql执行查询计划: explain select t.or ...
- c#类的继承与包含的关系
基础例子 class Dept { private string name; private Emp emp; public string getName() { return this.name; ...
- CVE-2017-12615漏洞利用
Tomcat任意文件上传漏洞CVE-2017-12615复现 今天在群里听到有人讲这个CVE-2017-12615漏洞,想起自己的虚机ubuntu里面曾经装过tomcat,午休时间来瞅瞅. 漏洞利用条 ...
- Linux下安装python3及相关包
Python3: sudo apt-get install python3 终端中输入python则进入python2,输入python3则进入python3 安装python2的相关包: sudo ...
- mdm9607 gpio12~17改成普通gpio的方法
qualcomm mdm9607的gpio12~gpio17定义如下: 现在如果想要设置GPIO_12~GPIO_17为普通GPIO口. 需要修改如下: 顺便附上qualcomm的说明: Remove ...
- [电脑知识点]win10家庭版怎么显示桌面图标
控制面板-------->外观和个性化-------->个性化-------->更改桌面图标-------->然后你就能看到你想要的东西了,勾选上就可以了
- BCGcontrolBar(六) RibbonBar编辑
BCGcontrolBar 可以使用 Ribbon Designer方便的对 Ribbon条进行编辑 文件位置为 C:\Program Files\BCGSoft\BCGControlBarPro\D ...
- layui之初始化加分页重复请求问题解决
layui框架中的page困扰我很久,一个页面初始化后并且分页,导致初始化渲染请求一次,分页再请求了一次,一个接口就重复请求了2次,通过不停的分析和测试,最终解决了这个问题. 基于JQ的ajax二次封 ...