整理一下现在在用的框架,已经将代码传到了github上,写个文档记录一下.免得以后时间久了忘了!
代码获取地址 https://github.com/yjdeihc/python_autotest
分类:selenium自动化测试
Python3+Selenium web自动化测试(六)
工欲善其事必先利其器,我们编辑代码和程序肯定是需要使用工具的,下面我们来安装pycharm
windows下PyCharm安装及使用
搭建环境
1、win10_X64,其他Win版本也可以。
2、PyCharm版本:Professional-2016.2.3。
搭建准备
1、到PyCharm官网下载PyCharm安装包。

2、选择Windows系统的专业版下载。

3、下载好的安装包。

安装软件
1、双击安装包进行安装。

2、自定义软件安装路径(建议路径中不要中文字符)。

3、创建桌面快捷方式并关联*.py文件。

4、选择开始菜单文件夹(默认即可),点击安装。

5、耐心等待安装。

6、安装完成,勾选立即运行PyCharm。

7、选择是否导入开发环境配置文件,我们选择不导入。

8、阅读协议并同意(少年,选择略过吧)。

9、选择输入激活码激活软件(请阅读下一步获取激活码)。

10、软件激活方式
1、推荐购买正版软件。
2、可以选择下载社区版本,免费的。
3、专业版本可以选择试用,免费试用30天。
4、网上寻找激活码或授权服务器。
我们使用第4种方法:
在IntelliJ IDEA 注册码网站,获取激活码,以前允许自定义用户名,现在已经是No了,只能直接获取激活码。

点击获取激活码后,文本默认是全选中的,直接右击选择复制即可。

11、将激活码粘贴到文本框,点击OK即可。

12、PyCharm的欢迎界面。

13、选择IDE主题与编辑区主题,建议Darcula主题(温馨提示:黑色更有利于保护眼睛噢!!!)。

14、由于我们更改主题,故会提示重启IDE,选择Yes。

15、选择创建新项目。

16、自定义项目存储路径,IDE默认会关联Python解释器。

17、IDE提供的提示,我选择在启动时不显示提示。

Python3+Selenium web自动化测试(五)
selenium IDE的使用说明
一、seleniumIDE界面介绍
为了方便简洁,我们就按照上图的数字标记介绍:
1、菜单栏,文件:创建、打开和保存测试案例和测试案例集。编辑:复制、粘贴、删除、撤销和选择测试案例中的所有命令。
Action :设置脚本的录制行为。Options : 用于设置seleniunm IDE
2、用来填写被测网站的地址
3、速度控制:控制案例的执行速度
4、运行所有:运行一个测试案例集中的所有案例。
5、运行:运行当前选定的测试案例。
6、暂停/恢复:暂停和恢复测试案例执行。
7、单步:可以运行一个案例中的一行命令。
8、录制:点击之后,开始记录你对浏览器的操作。
9、案例集列表。
10、测试脚本;table标签:用表格形式展现命令及参数。source标签:用原始方式展现,默认是HTML语言格式,也可以用其他语言展示。
11、查看脚本运行通过/失败的个数。
12、当选中前命令对应参数。
13、日志/参考/UI元素/Rollup
二、录制第一个脚本
打开seleniumIDE,录制按钮默认为启动状态,在地址栏中输入要录制的地址(http://www.baidu.com)脚本录制完后,关闭录制按钮,脚本录制完成,如下图所示:
三、编辑脚本
3.1、编辑某条命令,例如修改脚本中的搜索内容,将搜索的selenium换成seleniumIDE。只需将图中的value值修改一下即可。
3.2、插入一条脚本,右键选择insert new command,根据需要,添加Command、Target、Value。
3.3、添加注释,脚本上方,右键选择insert new comment。
3.4、命令和注释位置调整,只需要通过鼠标点击拖拽即可。
3.5、定位辅助,当seleniumIDE录制脚本时,Target会生成针对当前元素的所有定位方式,可以单击target下拉选框选择元素定位方式
3.6、设置断点,选择一条命令,鼠标右键选择Toggle Breakpoint。
四、脚本转换
在菜单栏中,选择“文件”→“Export test Case As…”来转换我们需要的脚本格式。
录制脚本比较容易,但回放的时候可能会出现问题,需要自己根据出现的问题进行调节。本人推荐自己手写脚本,而不是录制生成。
Python3+Selenium web自动化测试(四)
selenium IDE 录制插件和firebug的安装
第一步firebug安装
之前已经安装了Firefox的浏览器(54版本),直接从浏览器的插件里面去搜索安装这两个东西
第一步安装firebug,打开Firefox浏览器,进入附件组件中
在附加组扩展中收索firebug的关键字
找到后直接安装即可
firebug的使用教程:http://www.runoob.com/firebug/firebug-tutorial.html
温馨提示firebug已经停止更新,并且只支持55版本之前的Firefox浏览器,
之后版本的浏览器使用的是这个工具https://developer.mozilla.org/en-US/docs/Tools
第一步selenium IDE 安装
同样在扩展组件中搜索selenium ide
————–更新———-
根据收索结果我们找到了一个Katalon Recorder (Selenium IDE for Firefox 55+),我们使用的是54版本所以不是这个,也不是selenium IDE Button 这个东西,这个东西排序在最前面,不少人被坑!
安装完了发现只有一个按钮
往下滚动浏览器,查看更多的结果,找到一个由
安装此插件后重启浏览器,找到工具栏上多出的此按钮,点击出现如下页面表示selenium IDE 录制插件安装成功
Python3+Selenium web自动化测试(三)
本节主要是讲selenium webdriver 启动不同的浏览器Firefox,Chrome,IE
安装三大浏览器驱动driver
1.chromedriver 下载地址:https://code.google.com/p/chromedriver/downloads/list
2.Firefox的驱动geckodriver 下载地址:https://github.com/mozilla/geckodriver/releases/
3.IE的驱动IEdriver 下载地址:http://www.nuget.org/packages/Selenium.WebDriver.IEDriver/
我也提供一个百度盘的下载地址链接:https://pan.baidu.com/s/1H4elTE4OIsuTrsLZYEuguQ 密码:zo0v
里面的都是window的驱动,如果需要其他系统的到对应下载链接去下载!
下载完成后如果不想配置环境变量,可以直接将驱动程序放入到python的安装目录下,
根据需要选着不同的方式,运行测试不同的浏览器驱动是否生效
#coding:utf-8
from selenium import webdriver
import time
brower = webdriver.Chrome()
#brower = webdriver.Firefox()
#brower = webdriver.Ie()
brower.get(“http://www.baidu.com”)
brower.find_element_by_id(‘kw’).send_keys(‘selenium’)
brower.find_element_by_id(‘su’).click()
time.sleep(8)
brower.close()
python selenium iframe中元素的定位问题疑难记录
这是我要定位的信息直接贴一段我的定位代码 第一段 driver = self.driver driver.get(self.base_url + "/enterprise/do.html") time.sleep(4) 第二段 driver.switch_to_frame("signFr") driver.find_element_by_name("username").clear() driver.find_element_by_name("username").send_keys(username) driver.find_element_by_name("password").clear() driver.find_element_by_name("password").send_keys(pwd) driver.find_element_by_css_selector("button.submit").click() print u"登陆成功" 第三段 driver.switch_to_default_content() 步骤解释 1,首先打开URL ,然后sleep了4秒,为什么要sleep4秒.因为程序跑的太快页面有可能还没有加载完成. 所以你怎么调试有定位不到!!这是一个大坑,在这个位置被折腾了好几天终于发现是页面没有加载好的原因,切记切记!程序中新开页面定位页面经常会遇到这种没有加载好的问题! 2,定位到iframe 3,定位到iframe后在定位iframe外的其他位置的时候需要退出之前的iframe定位,切记切记
Python3+Selenium web自动化测试(二)
第二章—–python如何驱动浏览器
第一步安装selenium
推荐使用在线安装,打开CMD命令窗口行,输入命令pip install selenium
直到出现以下画面说明安装完成
Selenium3.0中的Firefox驱动独立了,在Selenium3.0之前,只要在不同编程语言下安装好Selenium就可以驱动Firefox浏览器运行自动化测试脚本。这是因为不同语言下的Selenium库中移动包含了Firefox浏览驱动。
然而,现在Firefox浏览器驱动与Selenium库分离,单独提供下载。
下载地址:https://github.com/mozilla/geckodriver/releases
不过,geckodriver驱动要求Friefox浏览器必须48版本以上。
【浏览器驱动】
1. 下载:
FireFox的驱动,gechodriver(蜥蜴驱动?!),找如下链接里面对应操作系统的:
https://github.com/mozilla/geckodriver/releases
下载完成后将驱动放到python安装目录的根目录
然后下载48以上版本的Firefox的浏览器进行安装,Firefox 浏览器下载地址: http://ftp.mozilla.org/pub/firefox/releases/
我现在使用的54版本
安装完后,运行下列的示例代码,
#coding:utf-8
from selenium import webdriver
import time
brower = webdriver.Firefox()
brower.get(“http://www.baidu.com”)
brower.find_element_by_id(‘kw’).send_keys(‘selenium’)
brower.find_element_by_id(‘su’).click()
time.sleep(3)
brower.close()
将上面的代码复制到磁盘D盘的根目录下,命名为test.py ,然后启动CMD窗口 ,切换路径到D盘根目录!执行 python test.py
如果能正常打开浏览器并出现以下后面说明登陆成功
Python3+Selenium web自动化测试(一)
最近空了,梳理一下详细的使用python用于web自动化测试东西,因为以前记载的不是很详细!带领新人的时候新人根据文档总是遇到各种问题操作不下去!所有整理的详细一点,希望新人在入门的时候少遇到一些坑!
第一章——python3环境安装
第一步下载安装包,通过浏览器打开此网址 https://www.python.org/
在download页面上选择一个合适自己电脑的版本进行下载,因为个人使用的window系统的电脑所有下载了windos 版本的安装包
下载完成后双击安装包进行安装
记得勾选上ADD python 3.6 to PATH (此步是为系统添加python的环境变量) ,否则安装成功后运行python命令会无法识别!
继续下一步,勾选install for all users!并且将安装包指定到自己合适的目录
继续安装
安装成功
验证安装的python 环境,同时按住window键+R键
输入cmd打开命令窗口,输入python
出现以下画面说明python安装成功!
关于selenium自动化测试过程中汉字出现乱码的解决方式(perl)
最近在使用selenium做WEB自动化测试,但发现了一个比较恼火的问题,就是我们如果在自动化过程中输入内容,或者页面上的标签是汉字的话,在录制完成运行脚本的时候,存在汉字的那行脚本代码会报错。
本人使用的是Perl+selenium RC 来运行的测试脚本。在找了网上是资料后发现几种方式都不行。
先附上:找到的两种解决方式 (进过验证对我的环境都无效,)
方法1:启动selenium RC的时候附上参数
#################################################################################
最开始用 java -jar selenium-server.jar,未加任何参数,结果就出现乱码问题,加上-Dfile.encoding=”Unicode” 参数则问题解决,注意是Unicode,经测试UTF-8也不行,不知是否和我操作系统的字体有关,我是win7操作系统。
解决乱码的完整启动命令行 :
java -jar selenium-server.jar -Dfile.encoding=”Unicode”
################################################################################
方法2:将汉字转换成unicode
#################################################################################
use strict;
use warnings;
use Encode qw/encode decode/;
use Time::HiRes qw(sleep);
use Test::WWW::Selenium;
use Test::More “no_plan”;
use Test::Exception;
#步骤3:创建selenium会话,打开百度主页
our $sel = Test::WWW::Selenium->new(
host => “localhost”,
port => “4444”,
browser => “*chrome”,
browser_url => “http://www.baidu.com”);
$sel->open_ok(“/”);
my $chinese_text = “新 闻”;
my $decode_text = decode(“cp936”,$chinese_text);//此处转换为啥是CP936?,一直不明白
$sel->click_ok(“link=$decode_text”);
################################################################################
经IE查看页面编码格式是unicode(utf-8),多次尝试最后将上面两中方式结合,将输入内容转换为utf-8
终于成功通过脚本的运行
====================================================================
use strict;
use warnings;
use Time::HiRes qw(sleep);
use Test::WWW::Selenium;
use Test::More “no_plan”;
use Test::Exception;
use Encode;//使用encode 进行格式转码
my $sel = Test::WWW::Selenium->new( host => “localhost”,
port => 4444,
browser => “*chrome”,
browser_url => “http://192.168.1.93:8888/EIMSAdmin/Home/Login” );
$sel->open_ok(“/EIMSAdmin/Home/Login”);
my $logincalss= “管理员登陆”;
$logincalss = decode(“utf-8”,$logincalss);//将汉字强制转换成utf-8格式的放到变量$logincalss中
$sel->select_ok(“id=type”, “label=$logincalss”);
$sel->type_ok(“id=UserName”, “liuhubo”);
$sel->type_ok(“id=Password”, “123456”);
$sel->click_ok(“css=input.userLoginBtn”);
$sel->wait_for_page_to_load_ok(“30000”);
Python3+Selenium环境配置
一、Python安装
Window系统下,python的安装很简单。访问python.org/download,下载最新版本,安装过程与其他windows软件类似。记得下载后设置path环境变量,然后Windows命令行就可以调用了:
二、Selenium安装
Python3.x安装后就默认就会有pip(pip.exe默认在python的Scripts路径下),使用pip安装selenium:
pip install selenium
因我已安装selenium,不可重复安装。
可使用以下命令查看是否安装成功:
pip show selenium
三、Firefox安装
因安装最新Firefox与selenium兼容有问题,所以安装旧版firefox47,记得在firefox安装插件firebug和firepath。(此外,记得关闭firefox的自动安装)
Firefox旧版下载地址:http://ftp.mozilla.org/pub/firefox/releases/
四、安装driver
Selenium 3以前,使用firefox浏览器不需要额外的driver。但是Selenium 3.X 对firefox浏览器也需要安装相应的driver:
Firefox浏览器需安装geckdriver,下载地址:https://github.com/mozilla/geckodriver/releases;
相应的,Chrome浏览器需要安装chromedriver,IE浏览器要安装IEdriver。
driver的路径可以直接放在python路径下,我这里把driver放在了python的Scripts路径下,同时把script路径加入环境变量。
五、运行一个简单的例子
使用python自带的IDLE工具,输入以下脚本:
from selenium import webdriver # 导入webdriver包
import time
driver = webdriver.Firefox() # 初始化一个火狐浏览器实例:driver
driver.maximize_window() # 最大化浏览器
time.sleep(5) # 暂停5秒钟
driver.get(“https://www.baidu.com”) # 通过get()方法,打开一个url站点
运行以上脚本,最终打开百度网址,证明运行成功。
PS,我的运行环境:
Firefox浏览器版本:Firefox 47.0
Python:python v3.5.2
Selenium:3.4.3
Geckdriver:v0.15.0