Python3+Selenium web自动化测试(六)

工欲善其事必先利其器,我们编辑代码和程序肯定是需要使用工具的,下面我们来安装pycharm

windows下PyCharm安装及使用

搭建环境

1、win10_X64,其他Win版本也可以。
2、PyCharm版本:Professional-2016.2.3。

搭建准备

1、到PyCharm官网下载PyCharm安装包。

Download

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。

重启IDE

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 这个东西,这个东西排序在最前面,不少人被坑!
安装完了发现只有一个按钮
往下滚动浏览器,查看更多的结果,找到一个由Jason Huggins  上传的插件

安装此插件后重启浏览器,找到工具栏上多出的此按钮,点击出现如下页面表示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中元素的定位问题疑难记录

这是我要定位的信息
QQ截图20160629230109
直接贴一段我的定位代码
第一段
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