Selenium API基础
<p><strong>1.介绍</strong></p>
<pre><code>1)API就是使用的selenium2.0主推的webdriver
2)3.0继续要用这套API
3)移动端功能测试用到的appium其实就是对selenium的再封装</code></pre>
<p><strong>2.创建浏览器</strong></p>
<pre><code>1)库的导入
from selenium import webdriver
2)创建浏览器对象
driver = webdriver.firefox()
使用dir(driver)查看方法
3)浏览器尺寸相关操作
maximize_window() //最大化
get_window_size() //获取浏览器尺寸
set_window_size() //设置浏览器尺寸
案例:脚本操作打开一个测试浏览器,并调整其大小
4)浏览器位置相关操作
get_window_position() //获取浏览器位置
set_window_position(x,y) //设置浏览器位置
注:显示器以左上角为(0,0),所有的位置操作都是相对于显示器左上角展开的位移操作,单位是像素。
5)浏览器的关闭操作
close() //关闭当前标签/窗口
quit() //关闭所有标签/窗口</code></pre>
<p><strong>3.页面操作</strong></p>
<p>1)url的格式:</p>
<pre><code>形式:scheme://host[:port#]/path/…/[?query-string][#anchor]
scheme:协议(例如:http, https, ftp)
host:服务器的IP地址或者域名
port:服务器的端口(如果是走协议默认端口,80 or 443)
path:访问资源的路径
http://www.cnblogs.com/be-saber/p/4734951.html
query-string:参数,发送给http服务器的数据,参数使用&隔开
anchor:锚(跳转到网页的指定锚点位置)
https://detail.tmall.com/item.htm?id=545181862652</code></pre>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/98810e5850216bdd83962603467546cd?showdoc=.jpg" alt="" /></p>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/1efd2a2af8ce82d20707bb531c4d2ac5?showdoc=.jpg" alt="" /></p>
<p>2)页面请求操作</p>
<pre><code>driver.get(url) //请求某个url对应的响应
refresh() //刷新页面操作
back() //回退到之前的页面
forward() //前进到之后的页面
案例
1)访问 http://www.baidu.com
2)访问 https://zhuanlan.zhihu.com/
3)回退
4)前进</code></pre>
<p><strong>4.断言信息</strong></p>
<pre><code>4.1 概念:
断言是编程术语,表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。
4.2 获取断言信息的操作:
current_url //获取当前访问页面url
title //获取当前浏览器标题
get_screenshot_as_png() //自己写文件,保存图片到内存中
get_screenshot_as_file(file) //自动写文件,直接保存在当前脚本运行目录(也可指定)
page_source //网页源码</code></pre>
<p><strong>5.WebDriver</strong></p>
<p>5.1 概念</p>
<pre><code>1. Webdriver (Selenium2)是一种用于Web应用程序的自动测试工具;
2. 它提供了一套友好的API; 接口有接口的API,库有库的API;
3. Webdriver完全就是一套类库,不依赖于任何测试框架,除了必要的浏览器驱动;
说明:API:应用编程接口说明(WebDriver类库内封装非常多的方法,要使用这些方法,就需要友好的调用命名规则)</code></pre>
<p>5.2 WebDriver API支持的浏览器</p>
<pre><code>1. Firefox (FirefoxDriver)【推荐-本阶段学习使用】
2. IE(InternetExplorerDriver)
3. Opera(OperaDriver)
4. Chrome (ChromeDriver)
5. safari(SafariDriver)
6. HtmlUnit (HtmlUnit Driver)
提示:
Firefox、Chrome:对元素定位和操作有良好的支持,同时对JavaScript支持也非常好;
IE:只能在windows平台运行,所有浏览器中运行速度最慢;
HtmlUnit:无GUI(界面)运行,运行速度最快;</code></pre>
<p>5.3 WebDriver API支持的开发语言</p>
<pre><code>官网文档:https://docs.seleniumhq.org/docs/03_webdriver.jsp
1. Java
2. Python
3. PHP
4. JavaScript
5. Perl
6. Ruby
7. C#</code></pre>
<p><strong>6.WebDriver-元素定位</strong>
<a href="https://www.showdoc.cc/lkr?page_id=3777281209607722">https://www.showdoc.cc/lkr?page_id=3777281209607722</a></p>
<p><strong>7.WebDriver-元素操作</strong></p>
<p>7.1 说明
对元素的相关操作,一般要先获取到元素,再调用相关方法:element = driver.find_element_by_xxx(value)
7.2 操作
7.2.1 点击和输入</p>
<pre><code>点击操作:
element.click()
清空/输入操作(只能操作可以输入文本的元素):
element.clear() //清空输入框
element.send_keys(data) //输入数据</code></pre>
<p>7.2.2 提交操作</p>
<pre><code>element.submit()
案例:
1.打开chrome搜索
2.搜索关键字 selenium
3.清空
4.搜索python</code></pre>
<p>7.2.3 获取元素信息</p>
<pre><code>获取文本内容(既开闭标签之间的内容):
element.text
获取属性值(获取element元素的value属性的值):
element.get_attribute(value)
获取元素尺寸(了解):
element.size
获取元素是否可见(了解):
element.is_dispalyed()</code></pre>