在Mac环境下的自动化测试环境搭建这里有一篇亲测通过的文《mac下怎么搭建selenium python环境?》。

不过在这个过程中要注意两点:

1.在终端联网执行命令“sudo pip install –U selenium”如果失败了的话,可以尝试用命令“sudo easy_install selenium”来安装selenium;

2.安装好PyCharm后新建project,Interpreter一定要选对,默认给出的两个可选项很有可能是不对的。亲测通过的一个Interpreter是“/usr/bin/python2.7”。如果你创建project的时候选错了Interpreter的话,可以从PyCharm(我的PyCharm版本是PyCharm Community Edition 5.0.1)的File->Default Settings->Default Project->Project Interpreter->Add local来重新进行选择,如下图:

如果第2点选择不对的话在import selenium的时候会出错,提示:Unresolved preference ‘Selenium’。

只有选择对Interpreter之后才能够正常的引入selenium并执行程序(以下用测试博客园登录功能为例):

#-*- coding: UTF-8 -*-
from selenium import webdriver
import time
browser = webdriver.Firefox()
browser.get("http://cnblogs.com")
time.sleep(1)
browser.find_element_by_link_text("登录").click()
time.sleep(1)
browser.find_element_by_id("input1").send_keys("用户名")
browser.find_element_by_id("input2").send_keys("密码")
browser.find_element_by_id("signin").click()
time.sleep(1)
try:
if browser.find_element_by_link_text("退出"):
print "Login Successfully."
except:
print "Login failed."
#browser.quit()

运行结果(测试通过):

这样在Mac+Python+PyCharm+Selenium下一个简单的测试用例就完成了。

最后说些关于自动化的事,哪些测试有必要自动化,哪些测试没必要自动化。我认为页面上的文字以及图像类检查,都没有必要自动化。为什么呢?因为布局上的一些东西,是要靠肉眼看的。即便是文字内容对了,如果布局出错了,用传统的自动化页面定位元素的检查方法也是check不出来的。所以我认为,凡是涉及到图像和文字等一切表现层的东西都没有必要自动化,表现层上的测试还是要手动的完成。至于功能逻辑上的测试,比如点哪个按钮跳转到哪里之类的测试,可以自动化完成。

Mac OS下应用Python+Selenium实现web自动化测试的更多相关文章

  1. 在MAC OS 下配置python + Flask ,并支持pyCharm编辑器

    原创咯- flask是一个micro framework ,伸缩性很强.可以部署到openshift 的PAAS里.这个框架上手非常快.喜欢的可以试试. 若实在MAC里,python已经默认安装了.1 ...

  2. python+selenium的web自动化测试之一(手工执行)

    环境 Windows 前提: 1. python已正常安装 2. selenium已正常安装. 如果没安装,会报:ImportError: No module named 'selenium' (参考 ...

  3. 【Selenium03篇】python+selenium实现Web自动化:元素三类等待,多窗口切换,警告框处理,下拉框选择

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第三篇博 ...

  4. 【Selenium06篇】python+selenium实现Web自动化:日志处理

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第六篇博 ...

  5. 【Selenium04篇】python+selenium实现Web自动化:文件上传,Cookie操作,调用 JavaScript,窗口截图

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第四篇博 ...

  6. 【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在 ...

  7. 【Selenium05篇】python+selenium实现Web自动化:读取ini配置文件,元素封装,代码封装,异常处理,兼容多浏览器执行

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第五篇博 ...

  8. 【Selenium07篇】python+selenium实现Web自动化:PO模型,PageObject模式!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第七篇博 ...

  9. 【Selenium02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第二篇博 ...

随机推荐

  1. 微信开发---------jsapi_ticket拿不到的问题。

    今天代码没动,出现的问题是分享朋友圈,朋友,分享到QQ,我设置的分享链接都失效了.找来找去也不知道什么原因,没办法就只有一个个打印参数并查看文档,先把jssdk页面上的debug设置为true(微信原 ...

  2. WinForm利用 WinApi实现 淡入淡出 弹出 效果 仿QQ消息

    消息框: using System.Runtime.InteropServices; namespace Windows_API_实现屏幕右下角_消息框_ { public partial class ...

  3. [转]数据库高可用架构(MySQL、Oracle、MongoDB、Redis)

    一.MySQL   MySQL小型高可用架构 方案:MySQL双主.主从 + Keepalived主从自动切换 服务器资源:两台PC Server 优点:架构简单,节省资源 缺点:无法线性扩展,主从失 ...

  4. 每天一个liunx命令(ubuntu)

    解压XXX.gz到另一个A文化夹: 1.切换到root权限 su 2.tar -zxvf  XXX.gz -C  A 注意: C要大些因为ubuntu区分大小写

  5. SpringMvc的数据绑定流程

    在SpringMvc中会将来自web页面的请求和响应数据与controller中对应的处理方法的入参进行绑定,即数据绑定.流程如下: -1.SpringMvc主框架将ServletRequest对象及 ...

  6. js正则表达式进行格式校验

    今天做了个js正则表达式的练习,利用正则表达式进行注册信息格式验证,注册信息界面如下: 格式要求: 1.学号项不能为空,必须为纯数字,不能与数据库中的重复,正则表达式/^\d+$/g: 2.姓名项不能 ...

  7. 自动开票-不能获取汇款地址 Cannot get remit to address

    1. Cannot get remit to address 1. 查看客户Bill-to Address的Country信息; 2. 选择Receivable Manager职责,通过路径Setup ...

  8. R12 供应商SQL

    -- 供应商主表数据: SELECT ass.vendor_id vendor_id, ass.party_id party_id, ass.segment1 vendor_code, ass.ven ...

  9. 夺命雷公狗ThinkPHP项目之----企业网站9之栏目的列表完善(无限极分类的完成)

    我们刚才已经写好model了,那么这里直接来调用下他即可: public function lists(){ $mod = D('Category')->catTree(); $this -&g ...

  10. :has(selector) 匹配含有选择器所匹配的元素的元素

    描述: 给所有包含 p 元素的 div 元素添加一个 text 类 HTML 代码: <div><p>Hello</p></div> <div&g ...