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框架,如DjangoPyramidTurboGearsTornadoweb2pyZopeFlask等,可以让程序员轻松地开发和管理复杂的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)。

 1 #import os 2 import  time
 3 from selenium import webdriver
 4 from selenium.webdriver.common.keys import Keys
 5
 6 # test case
 7 def testbrowser(driver):
 8     driver.get("http://www.baidu.com")
 9     driver.find_element_by_id("kw").click()
10     driver.find_element_by_id("kw").clear()
11     driver.find_element_by_id("kw").send_keys("vx")
12     driver.find_element_by_id("su").click()
13     driver.implicitly_wait(30)
14     time.sleep(3)
15     driver.close()
16     driver.quit()
17     return None
18
19 driverfirefox = webdriver.Firefox()
20 testbrowser(driverfirefox)
21
22 driverie = webdriver.Ie()
23 testbrowser(driverie)
24
25 driverchrome = webdriver.Chrome()
26 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

时间: 2024-10-23 15:43:39

python+selenium实现跨浏览器兼容性测试的相关文章

12款很棒的浏览器兼容性测试工具推荐

对于前端开发工程师来说,确保代码在各种主流浏览器的各个版本中都能正常工作是件很费时的事情,幸运的是,有很多优秀的工具可以帮助测试浏览器的兼容性,让我们一起看看这些很棒的工具. Spoon Browser Sandbox 点击你需要测试的浏览器环境,安装插件就可以进行测试了.帮助你测试网页在Safari.Chrome.Firefox和Opera浏览器中是否正常,IE以前也有的,网站上说应微软的要求去掉了. Superpreview 这是为微软自己发布的跨浏览器测试工具,您可以同时查看您的网页在多个

Web浏览器兼容性测试工具如何选择

对于前端开发工程师来说,网页兼容性测试工程师而言,确保代码在各种主流浏览器的各个版本中都能正常工作是件很费时的事情,幸运的是,有很多优秀的工具可以帮助测试浏览器的兼容性,领测软件测试网向您推荐12款很棒的浏览器兼容性测试工具让我们一起看看这些很棒的工具吧. Spoon Browser Sandbox 点击你需要测试的浏览器环境,安装插件就可以进行测试了.帮助你测试网页在Safari.Chrome.Firefox和Opera浏览器中是否正常,IE以前也有的,网站上说应微软的要求去掉了. Super

Event对象跨浏览器兼容性写法

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

牛人推荐的跨浏览器兼容性总结

牛人推荐的跨浏览器兼容性总结 [复制链接]        发送短消息 UID2427精华4积分239共享分12442 威望1285 查看公共资料 搜索主题 搜索帖子 灵雨飘零  技术总监 组别管理员 生日帖子470精华4积分239共享分12442 威望1285 在线时间28275注册时间2013-11-24  1# 字体大小: t T  发表于 2013-12-26 08:27 |只看楼主 一. CSS样式兼容 1. FLOAT闭合(clearing float) 网页在某些浏览器上显示错位很多

浏览器兼容性测试的分类

浏览器在Web系统中的一个非常重要的组成部分,它关系到软件产品最终的展现形式,直接与用户打交道.同一个Web页面在不同的浏览器上可能有不同的效果,而用户也有各不相同的使用浏览器的习惯,既有使用主流浏览器的也有使用非主流的(比如作者,用的是Opera,碰到过很多网页都有兼容性的问题……)所以,为了保证我们的软件产品能够面向大多数的用户,浏览器的兼容性测试在Web测试中占据了十分重要的作用. 现在市面上的浏览器种类可谓玲琅满目,有大家所熟知的IE.Firefox.Chrome.傲游.360安全浏览器

解决SVG跨浏览器兼容性问题

Raphael JS:SVG/VML+JS实现跨浏览器的矢量图形实现方案 http://blog.csdn.net/tiewen/article/details/8535748 SVG那些小事儿 http://www.w3cfuns.com/article-5601506-1-1.html Raphaël—JavaScript Library http://raphaeljs.com/ Raphael JS:SVG/VML+JS实现跨浏览器的矢量图形实现方案

手机浏览器兼容性测试结果概要

以下所说的"大多数"是指在我们测试过的机型中,发生此类状况的手机占比达50%及以上,"部分"为20%到50%:"少数"为20%及以下.而这个概率也仅仅只限于我们所测试过的机型,虽然我们采集的样本尽量覆盖各种特征的手机,但并不代表所有手机的情况. XHTML部分 大多数手机不支持的: 表单元素的"disable"属性 部分手机不支持的: "button"标签 "input[type=file]&qu

浏览器兼容性测试

武汉科技大学成果展示网站http://jxcgj.wust.edu.cn/2018001 http://jxcgj.wust.edu.cn/2018003/ 本能科技http://bellon.cn/index/index 智慧树网http://www.zhihuishu.com/ 长春市交通运输局http://www.cctraffic.com.cn/ http://www.homeapp.com/ 文创http://www.91craft.com/ 花韵高端会所http://www.qing

python+selenium操作chrome浏览器抓取网页解决方案

以下操作均是在ubuntu系统下运行 from selenium import webdriver from scrapy.selector import Selector #操作chrome浏览器抓取淘宝 driver = webdriver.Chrome() driver.get('淘宝链接') print(driver.page_source) t_selector = Selector(text=driver.page_source) tm_price = t_selector.xpat