分享

用python selenium 自动化操作浏览器

 youxd 2016-12-26

浏览器的操作

浏览器最大化 在统一的浏览器大小下运行用例,可以比较容易的跟一些基于图像比对的工具进行结合,提升测试的


#coding=utf-8

from selenium import webdriver

driver = webdriver.Firefox()

driver.get('http://www.baidu.com')

print '浏览器最大化'

driver.maximize_window() #将浏览器最大化显示

driver.quit()

3.1.2、设置浏览器宽、高

在不同的浏览器大小下访问测试站点,对测试页面截图并保存,然后观察或使用图像比对工具对被测 页面的前端样式进行评测。比如可以将浏览器设置成移动端大小(320x480),然后访问移动站点,对其样

式进行评估;

#coding=utf-8

from selenium import webdriver

driver = webdriver.Firefox()

driver.get('http://m.mail.10086.cn')

#参数数字为像素点

print '设置浏览器宽480、高800显示' driver.set_window_size(480, 800)

driver.quit()

3.1.3、控制浏览器前进、后退

浏览器上有一个后退、前进按钮,对于浏览网页的人是比较方便的;对于 web 自动化测试来说是 一个比较难模拟的操作;webdriver 提供了 back()和 forward()方法,使实现这个操作变得非常简单。

#coding=utf-8

from selenium import webdriver import time

driver = webdriver.Firefox()

#访问百度首页

first_url= 'http://www.baidu.com' print 'now access %s' %(first_url)

driver.get(first_url)

#访问新闻页面

second_url='http://news.baidu.com' print 'now access %s' %(second_url) driver.get(second_url)

#返回(后退)到百度首页

print 'back to %s '%(first_url)

driver.back()

#前进到新闻页

print 'forward to %s'%(second_url)

driver.forward()

driver.quit()

为了使脚本的执行过程看得更清晰,在每一步操作上都加了print 来打印当前的 URL 地址。

运行结果如下:

>>> ================================ RESTART ================================

>>>

now access http://www.baidu.com now access http://news.baidu.com back to http://www.baidu.com

forward to http://news.baidu.com

实际测试中,这两个功能平时很少被使用,笔者所能想到的场景就是几个页面来回跳转,但又不想用

get url 的情况下。

python 基础知识补充:

下面打开 python shell 做以下练习:

>>> name = 'huhu'

>>> age = 26

>>> print 'my name is %s' %name my name is huhu

>>> print 'my age is %d' %age my age is 26

>>> print 'my name is %d' %name

Traceback (most recent call last):

File '', line 1, in

print 'my name is %d' %name

TypeError: %d format: a number is required, not str

>>> print 'my name is %s ,age is %d' %(name,age)

my name is huhu ,age is 26

在python2 中使用 print 语句进行打印输出,如果是字符信息的话需要对打印的信息加单引号(‘’)

或双引号(“”),它们本质上没有任何区别,不过使用引号时必须要成对出现。

上面的例子中我们定义一个字符串变量 name 和一个数据变量 age,要想在 print 打印字符串中引用这 两个变量就要用到“格式化字符串”的东西,在 print 打印字符串中指定变量类型,“%s”表示输出的类 型为字符串,“%d”表示输出类型为整型数字。

name 为字符串类型,我们用%d 来指定输出类型就会报错。如果我们不确定变量类型的话可以使用%r, 它的含义是“不管什么都打印出来”。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多