一、selenium安装和初始webdriver

Web测试的侧重点

模拟整个客户端给服务端发送请求

测试对象:仅仅是服务端

场景:性能测试,使用jmeter或Loadrunner等压力测试工具

模拟人操作浏览器,通过浏览器来发送请求给服务器

测试对象:整个web应用,包括前端和后端

场景:UI自动化,使用QTP或者selenium

 

使用selenium这个工具模拟的就是第二种情况:模拟整个客户端

 

 

 

Selenium包含哪些组件
 

Selenium1:seleniumRC(相当于代理服务器),seleniumCore(控制浏览器行为的JS代码)

Selenium2:整合了seleniumRC,用webdriver来替代了他的功能

Selenium3: 升级了webdriver的实现,调用方式仍然和2相同,因此对于开发者来说是无感的

最新Selenium版本的核心是webdriver

 

我们的课程以selenium3为基础,所以需要重点了解掌握webdriver

 

认识HTML

WebUI自动化的操作对象是浏览器中的网页

构成网页的基本元素就是HTML,所以需要了解HTML的知识

自学网址:http://www.w3school.com.cn/html/index.asp

首先要学习什么是HTML标签,属性

HTML标签

HTML 标记标签通常被称为 HTML 标签 (HTML tag)

  • HTML 标签是由尖括号包围的关键词,比如 <html>
  • HTML 标签通常是成对出现的,比如 <b> </b>
  • 标签对中的第一个标签是开始标签,第二个标签是结束标签
  • 开始和结束标签也被称为开放标签闭合标签

 

HTML 属性

HTML 标签可以拥有属性。属性提供了有关 HTML 元素的更多的信息

属性总是以名称/值对的形式出现,比如:name="value"

属性总是在 HTML 元素的开始标签中规定。

 

详细的描述信息都可以在网上找到

Webdriver的工作原理

Webdriver直接驱动浏览器来模拟一些人的操作,如点击按钮,输入字符串等

而我们的测试代码是通过发送命令给webdriver完成这些操作,

虽然不同的浏览器有不同的驱动,但是我们调用的代码API都是一样的

原理参考图:

 

 

 

 

通过webdriver自动化操作浏览器

安装selenium API库:

pip install selenium

 

下载对应浏览器驱动

以谷歌浏览器为例

 

chrome浏览器的web driver (chromedriver.exe), 可以在以下网址访问:

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

 

不过,最终的下载链接如下, 可以直接访问

https://chromedriver.storage.googleapis.com/index.html

 

注意点: 不同的浏览器对于不同的webdriver,同一浏览器的不同版本同样与webdriver版本一一对应

(很多同学自动化出现问题,就是版本对应关系搞错了。)一般越新的驱动,对应新的浏览器版本。

 

对应关系在 驱动说明网页有, 比如最新的2.33版本, 打开下面的链接

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

就说明了要使用 的chrome浏览器版本是 60 到 62.

我们通常使用最新的版本的驱动, 对象的都是比较新的浏览器版本

新的chrome浏览器,可以到百度搜索下载谷歌浏览器

 

上面的google域名的网址需要 翻墙才能访问!!!

 

翻墙有困难的同学看下面:

Chromedriver国内下载地址:

http://npm.taobao.org/mirrors/chromedriver/

注意版本对应关系:

http://blog.csdn.net/huilan_same/article/details/51896672

 

 

 

代码实例

 

下载好了驱动,安装好selenium库之后即可写代码了。

 

以课堂代码为例:

导入相关库

import time
导入第三方库的时候需要注意,项目的文件夹名称不能为selenium,否则无法导入webdriver
from selenium import webdriver


# 指定是chrome 的驱动
# 执行到这里的时候Selenium会去到指定的路径将chrome driver 程序运行起来
指定驱动的时候要注意,驱动路径要写全,

或者将包含驱动的目录添加到环境变量,不要添加很多个webdriver的环境变量,防止冲突
driver = webdriver.Chrome(r"d:\tools\webdrivers\chromedriver.exe")
# driver = webdriver.Firefox()
 

设置隐士等待的目的是为了找元素的时候动态等待页面加载,参数是最大等待时间,单位为秒
#隐式等待
driver.implicitly_wait(10)
 

调用get方法会打开浏览器并访问到指定的网址,注意:http://不能漏写
# get 方法 打开指定网址
driver.get('http://www.baidu.com')
 

根据ID查找元素的方法,注意:不能写成find_elements_by_id
# 查找到那个搜索输入栏网页元素,返回一个表示该元素的WebElement对象。
element_keyword = driver.find_element_by_id("kw")

# 输入字符
element_keyword.send_keys('松勤')

# 找到搜索按钮
element_search_button = driver.find_element_by_id("su")
# 点击该元素

element_search_button.click()

# time.sleep(5)

#
查看搜索结果
res_ele=driver.find_element_by_id('1')
print(res_ele.text)
# print(type(res_ele.text))

if (res_ele.text.startswith('松勤网 - 松勤软件测试-软件测试在线教育领跑者')):
   
print('pass')
else:
   
print('fail')


# 最后,driver.quit让浏览器和驱动进程一起退出。不然会有好几个实例一起运行

driver.quit()

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值