python selenium2示例 - SSL处理

前言

随着现在站点对安全的要求越来越高,越来越多的企业网站接入了https,随着https的大规模应用,我们在使用python selenium2进行自动化测试时,也要面临的挑战。

面临的问题

在实际的自动化测试实践中,因为越来越多的站点接入https,使得我们原有的python selenium2自动化测试代码进行测试时,浏览器总是报安全问题,即便在浏览器选项中将被测网址加入信任网址也没用。

一般情况下,我们访问http站点时的代码如下:

driver = webdriver.Firefox() driver.get(u'http://www.testingunion.com')

一般情况下,这样处理是正常, 但如果目标url是HTTPS访问模式,则浏览器会提示安全问题或是非信任站点。

在不同的浏览器上显示的提示如图所示(这里以英文版的浏览器为准):

浏览器SSL提示

我们看一下IE的解决方案,对ie浏览器而言,需要添加Desired Capabilities的acceptSslCerts选项为True,代码如下: 的

#_*_ coding:utf-8 _*_ __author__ = '苦叶子' from selenium import webdriver if __name__ == '__main__': capabilities = webdriver.DesiredCapabilities().INTERNETEXPLORER capabilities['acceptSslCerts'] = True driver = webdriver.Ie(capabilities=capabilities) driver.get(u'https://cacert.org/') print driver.title driver.quit()

对于firefox浏览器则需要添加FirefoxProfile()的accept_untrusted_certs的选项为True,示例代码如下:

#_*_ coding:utf-8 _*_ __author__ = '苦叶子' from selenium import webdriver if __name__ == '__main__': profile=webdriver.FirefoxProfile() profile.accept_untrusted_certs=True driver=webdriver.Firefox(firefox_profile=profile) driver.get(u'https://cacert.org/') driver.close()

对于chrome浏览器则需要添加ChromeOptions()的--ignore-certificate-errors选项为True,示例代码如下:

#_*_ coding:utf-8 _*_ __author__ = '苦叶子' from selenium import webdriver if __name__ == '__main__': options=webdriver.ChromeOptions() options.add_argument('--ignore-certificate-errors') driver=webdriver.Chrome(chrome_options=options) driver.get(u'https://cacert.org/') driver.close()

结束语

对于在利用上述方式针对不同浏览器处理SSL时,可能还会碰到还是处理不了的情况,比如提示证书损坏、无效等等;如果出现这类情况,请联系网站管理员更新SSL证书。

原文发布于微信公众号 - 开源优测(DeepTest)

原文发表时间:2017-03-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

第一章 Web MVC简介 —— 跟开涛学SpringMVC

1、  Web浏览器(如IE)发起请求,如访问http://sishuok.com

11810
来自专栏域名资讯

域名被墙了的解决办法有哪些?

  如果域名ping的通却打不开网站(排除服务器宕机),用代理可以打开一般说明域名被封了。假如域名下的网站非法信息多,敏感,又不整改,会直接被GFW墙掉,结果就...

3.5K50
来自专栏企鹅号快讯

11个让你吃惊的Linux终端命令

我已经用了十年的linux了,通过今天这篇文章我将向大家展示一系列的命令、工具和技巧,我希望一开始就有人告诉我这些,而不是曾在我成长道路上绊住我。 ? 1. 命...

25090
来自专栏杨建荣的学习笔记

Oracle闪回原理-Logminer解读redo(r11笔记第17天)

说到闪回日志,我们都知道闪回日志中记录的都是逆操作,那么就有两个问题需要解释了。 闪回日志和回滚段保存的数据有什么差别? 如果做了truncate操作,闪回日志...

390120
来自专栏程序员笔记

开发一个可维护的程序

18340
来自专栏我的小碗汤

nginx请求连接限制笔记

当时爬取时当并发过大的时候,请求就会出现卡死的情况。其实这可能就是珍爱网对请求和连接进行了限制。

12330
来自专栏Android 开发者

Android Jetpack: 分页库 (Paging Library) | 中文教学视频

Android Jetpack 是一系列助力您更容易打造优秀 Android 应用的工具和组件。

17740
来自专栏安恒网络空间安全讲武堂

Couchdb权限绕过和任意命令执行植入挖矿程序入侵分析

40630
来自专栏北京马哥教育

Ext3 和 ext4 文件系统在线调整大小内幕

磁盘布局 为了更好的理解在线调整大小工作机制,我们首先需要理解 ext3 和 ext4 文件系统的磁盘布局,对于该功能的实现来说,这两个文件系统在磁盘上的结构是...

40560
来自专栏SeanCheney的专栏

《Python分布式计算》 第5章 云平台部署Python (Distributed Computing with Python)云计算和AWS创建AWS账户创建一个EC2实例使用Amazon S3存

上一章介绍了创建Python分布式应用的Celery和其它工具。我们学习了不同的分布式计算架构:分布任务队列和分布对象。然而,还有一个课题没有涉及。这就时在多台...

38060

扫码关注云+社区

领取腾讯云代金券