python+selenium实现跨浏览器兼容性测试
python
https://www.python.org/
python是一种脚本语言, 易学易用,可以助你快速实现业务逻辑,高效集成系统。
----- http://zh.wikipedia.org/zh-cn/Python:
它的语法简单,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。
Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。使用Python语言编写的Gunicor
n作为Web服务器,也能够运行Python语言编写的Web程序。Python定义了WSGI标准应用接口来协调Http服务器与基于Python的Web程序之间的沟通。一些Web框架,如Django、Pyramid、TurboGears、Tornado、web2py、Zope、Flask等,可以让程序员轻松地开发和管理复杂的Web程序。
download: https://www.python.org/downloads/release/python-279/
selenium python bindings
selenium python bindings 提供一套简单的API,通过这些API调用了Selenium WebDriver,可以实现功能测试和验收性测试用例。
可以支持对 Firefox 和 IE 和 chrome的调用。
官网介绍:
http://selenium-python.readthedocs.org/installation.html#introduction
windows安装
1、 下载安装python3.4 https://www.python.org/ftp/python/3.4.2/python-3.4.2.msi
2、使用cmd.exe执行如下命令,安装selenium python bindings
C:\Python34\Scripts\pip.exe install selenium
3、下载IEdriver 和 chromedriver,并放到python安装目录下 (C:\Python34)
https://github.com/fanqingsong/daydayup/blob/master/CSoftware/webdriver/IEDriverServer.exe
https://github.com/fanqingsong/daydayup/blob/master/CSoftware/webdriver/chromedriver.exe
firefox不需要驱动
使用方法待研究驱动:
https://github.com/dineshkummarc/operadriver
https://github.com/mfazekas/safaridriver
4、可以运行python的测试脚本了,例如:
C:\Python34\python.exe C:\my_selenium_script.py
官网安装介绍:
http://selenium-python.readthedocs.org/installation.html#downloading-python-bindings-for-selenium
测试脚本
下面脚本实现, 打开baidu网页,搜索一个关键字, 依次执行三个浏览器(firefox ie chrome)。
#import os
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys # test case
def testbrowser(driver):
driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").click()
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys("vx")
driver.find_element_by_id("su").click()
driver.implicitly_wait(30)
time.sleep(3)
driver.close()
driver.quit()
return None driverfirefox = webdriver.Firefox()
testbrowser(driverfirefox) driverie = webdriver.Ie()
testbrowser(driverie) driverchrome = webdriver.Chrome()
testbrowser(driverchrome)
测试用例testbrowser代码可以使用 selenium IDE导出的脚本中截取主体部分:
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re class Baidupython(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(30)
self.base_url = "http://www.baidu.com/"
self.verificationErrors = []
self.accept_next_alert = True def test_baidupython(self):
driver = self.driver
driver.get(self.base_url + "/")
driver.find_element_by_id("kw").click()
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys("vx")
driver.find_element_by_id("su").click() def is_element_present(self, how, what):
try: self.driver.find_element(by=how, value=what)
except NoSuchElementException, e: return False
return True def is_alert_present(self):
try: self.driver.switch_to_alert()
except NoAlertPresentException, e: return False
return True def close_alert_and_get_its_text(self):
try:
alert = self.driver.switch_to_alert()
alert_text = alert.text
if self.accept_next_alert:
alert.accept()
else:
alert.dismiss()
return alert_text
finally: self.accept_next_alert = True def tearDown(self):
self.driver.quit()
self.assertEqual([], self.verificationErrors) if __name__ == "__main__":
unittest.main()
也可以自己写脚本,使用selenium driver的提供的api:
http://selenium-python.readthedocs.org/locating-elements.html
python教程:
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013747381369301852037f35874be2b85aa318aad57bda000
python+selenium实现跨浏览器兼容性测试的更多相关文章
- Selenium Grid跨浏览器-兼容性测试
Selenium Grid跨浏览器-兼容性测试 这里有两台机子,打算这样演示: 一台机子启动一个作为主点节的hub 和 一个作为次节点的hub(系统windows 浏览器为ie) ip为:192.16 ...
- Selenium_python自动化跨浏览器执行测试
Selenium_python自动化跨浏览器执行测试(简单多线程案例) 转:https://www.cnblogs.com/dong-c/p/8976746.html 跨浏览器测试是功能测试的一个分 ...
- Web浏览器兼容性测试工具如何选择
对于前端开发工程师来说,网页兼容性测试工程师而言,确保代码在各种主流浏览器的各个版本中都能正常工作是件很费时的事情,幸运的是,有很多优秀的工具可以帮助测试浏览器的兼容性,领测软件测试网向您推荐12款很 ...
- Web前端页面的浏览器兼容性测试心得(二)搭建原汁原味的IE8测试环境
如果你做的页面被老板或PM要求兼容IE8,你就值得同情了.IE8不支持HTML5,在2017年的前端界,开发者不涉及HTML5标准简直寸步难行.然而,有一个可怕的事实客观存在,那就是IE8是Win7系 ...
- Python+Selenium自动化-设置浏览器大小、刷新页面、前进和后退
Python+Selenium自动化-设置浏览器大小.刷新页面.前进和后退 1.设置浏览器大小 maximize_window():设置浏览器大小为全屏 set_window_size(500,5 ...
- Selenium_python自动化跨浏览器执行测试(简单多线程案例)
发生背景: 跨浏览器测试是功能测试的一个分支,用以验证web应用在不同浏览器上的正常工作,通常情况下,我们都期望web类应用能够被我们的用户在任何浏览器上使用,例如有的人喜欢IE浏览器上使用,有的人喜 ...
- [技术博客]基于动态继承类、WebDriver的浏览器兼容性测试框架搭建
问题背景 观察使用selenium进行自动化测试的过程,我们可以将它概述为: 启动测试进程,在该进程中构建WebDriver 启动浏览器进程,将它与WebDriver建立连接 使用WebDriver向 ...
- 试用saucelabs进行浏览器兼容性测试
Hi,all 跟大家分享下saucelabs,一个云测试平台,支持PC和手机(自带的)浏览器的兼容性测试,并且支持selenium/appium的自动化测试,不过是收费的,价格还挺贵,但是人工的测试是 ...
- python selenium模块调用浏览器的时候出错
python selenium模块使用出错,这个怎么改 因为不同版本更新不同步问题,浏览器都要另外下一个驱动.
随机推荐
- Frenetic HelloSDNWorld
Follow Frenetic-Github HelloSDNWorld 实验环境: Frenetic虚拟机: 实验步骤: 1.Start up a terminal window - – two a ...
- PHP 错误与异常 笔记与总结(5)配置文件中与错误日志相关的选项 && 将错误记录到指定的文件中
[记录错误(生产环境)] php.ini: ① 开启 / 关闭 错误日志功能 log_errors = On ② 设置 log_errors 的最大字节数 log_errors_max_len = 其 ...
- 纸牌project
用range[0,8)的列表表示牌,这些数字要出现两次.我们建议你通过连接两个range[0,8)的列表来创建这个list.利用Docs来安排列表串联操作 写一个draw handler啥样的draw ...
- kuaisupaixu
#include<stdio.h> void quiksort(int a[],int low,int high) { int i = low; int j = high; ...
- 2016/4/21 关于jquery复习
jQuert AJAX [1]jQuery load()方法 :是AJAX方法, 从服务器加载数据,并把数据放入被选元素中 语法: $(selector).load(URL,data,callback ...
- epoll 简单介绍及例子
第一部分:Epoll简介 . 当select()返回时,timeout参数的状态在不同的系统中是未定义的,因此每次调用select()之前必须重新初始化timeout和文件描述符set.实际上,秒,然 ...
- MVC程序实现Autocomplete功能
为了加强MVC的功力,加强练习是少不了的事情.Insus.NET这次想实现文本框的autocomplete功能. 在数据创建一张表[PinYin]: 插入一些数据: INSERT INTO [dbo] ...
- stage划分
整个stage的划分会根据最后触发的action进行倒推,如果碰到宽依赖就将当前范围内的rdd划分为一个stage,直到所有的RDD遍历完为止.
- SQL Server 触发器【转】
触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程.触发器主要是通过事件进行触发被自动调用执行的.而存储过程可以通过存储过程的名称被调用. Ø 什么是触发器 触发器对表进行插入.更新.删 ...
- javascript的alert()的消息框不弹出或者弹出信息有误
有时不知道什么,有时javascript的alert()的消息框不弹出或者弹出信息有误,代码是这么写的: //提示信息 public static void alert(TemplateControl ...