前言
1.什么是Selenium?
Selenium主要用于web应用程序的自动化测试,但并不局限于此,它还支持所有基于web的管理任务自动化。
它的特点如下:
- 开源,免费
- 多浏览器支持:Firefox、Chrome、IE、Opera、Edge
- 多平台支持:Linux、Windows、Mac
- 多语言支持:Java、Python、Ruby、C#、JavaScript、C++
- 对web页面有良好的支持
- 简单(API简单)、灵活(开发语言驱动)
- 支持分布式测试用例执行
2.选择Python2还是Python3?
目前情况来看,两个版本的更新与维护都在继续。并且Python2的开发者依然过半,所以个人觉得选择哪一个版本进行入门学习都可以,对于有丰富经验的Pythoner来说,选择用哪个版本要取决于自己使用的库、框架是否支持该版本,如果是新手的话,选择Python3的最大好处就是可以很大程度的避免编码问题。
Windows平台搭建步骤
1.安装Python
访问Python官方网站。
根据自己的操作系统32/64 位,选择相应的版本。
安装过程我就不详细描述了,动动手指头,Google一下,你就知道。我的安装目录为:C:\Python35
2.验证是否安装成功
进入cmd(windows命令提示符)下面输入"python"命令。应该如图1所示
图1
Tips:
如果提示python不是内部或外部命令!去配置一下环境变量即可。
修改我的电脑->属性->高级->环境变量->系统变量中的PATH为:
变量名:PATH
变量值:C:\Python35;
也可以在Python安装界面,勾选Add Python3.5 to PATH复选框,在安装完成后自动完成path的配置工作。
3.安装pip
首先需要在Python的官网上去下载,下载地址是:https://pypi.python.org/pypi/pip#downloads
如图2
下载完成之后,解压到一个文件夹,用CMD控制台进入解压目录,输入:
$ python setup.py install
安装好之后,我们直接在命令行输入pip,同样会显示‘pip’不是内部命令,也不是可运行的程序。因为我们还没有添加环境变量。
按照之前介绍的添加环境变量的方法,我们在PATH最后添加:
C:\Python35\Scripts;
然后重新打开CMD验证。
Tips:
在最新的Python安装包中已经集成了pip,可以在Python的安装目录C:\Python35\Scripts
下查看是否有pip.exe或pip3.exe文件。
4.安装Selenium
通过pip命令可以直接安装
$ pip install selenium
5.第一个自动化脚本
完成了以上的准备工作,我们的Selenium+Python自动化测试环境就搭建好了,下面就可以编写自动化脚本了。
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
print('设置浏览器全屏打开')
driver.maximize_window()
driver.find_element_by_xpath(".//*[@id='kw']").send_keys("python")
driver.find_element_by_xpath(".//*[@id='su']").click()
sleep(5)
driver.quit()
6.安装浏览器驱动
各个浏览器驱动下载地址:http://www.seleniumhq.org/download/
然后将下载得到的exe文件放到python的安装目录下。
安装完成后可以用IE和Chrome来替换Firefox运行上面的例子。
将
driver = webdriver.Firefox()
替换为:
driver = webdriver.Chrome()
或:
driver = webdriver.Ie()
如果程序能够调用相应的浏览器运行,说明浏览器驱动安装成功。
网友评论
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p
ackages\selenium\webdriver\common\service.py", line 74, in start
stdout=self.log_file, stderr=self.log_file)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\subpro
cess.py", line 676, in __init__
restore_signals, start_new_session)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\subpro
cess.py", line 955, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] 系统找不到指定的文件。
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "123.py", line 10, in <module>
driver =webdriver.Firefox()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p
ackages\selenium\webdriver\firefox\webdriver.py", line 140, in __init__
self.service.start()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p
ackages\selenium\webdriver\common\service.py", line 81, in start
os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable
needs to be in PATH.
Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firef
ox.service.Service object at 0x0000000000DB0CC0>>
Traceback (most recent call last):
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p
ackages\selenium\webdriver\common\service.py", line 173, in __del__
self.stop()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p
ackages\selenium\webdriver\common\service.py", line 145, in stop
if self.process is None:
AttributeError: 'Service' object has no attribute 'process'
Traceback (most recent call last):
File "C:/Users/Administrator/Desktop/first.py", line 3, in <module>
driver = webdriver.Firefox()
File "C:\Python27\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 80, in __init__
self.binary, timeout)
File "C:\Python27\lib\site-packages\selenium\webdriver\firefox\extension_connection.py", line 52, in __init__
self.binary.launch_browser(self.profile, timeout=timeout)
File "C:\Python27\lib\site-packages\selenium\webdriver\firefox\firefox_binary.py", line 68, in launch_browser
self._wait_until_connectable(timeout=timeout)
File "C:\Python27\lib\site-packages\selenium\webdriver\firefox\firefox_binary.py", line 108, in _wait_until_connectable
% (self.profile.path))
WebDriverException: Message: Can't load the profile. Profile Dir: c:\users\admini~1\appdata\local\temp\tmpcrkoo8 If you specified a log_file in the FirefoxBinary constructor, check it for details.
请问你有遇到这种情形吗,找不到是哪里出了问题