Python python 的 web 自动化测试:Selenium+webdriver

dawnjj · 2019年03月15日 · 143 次阅读

最近工作比较闲,平时工作中也并没有使用到web的UI自动化测试。正在学python,所以找点新东西来学习,在此记录一下,知识是很基础的。
先看例子吧(网上找的):

import time
from selenium import webdriver

def login(name, passwd):
url = 'https://pan.baidu.com/'
# 这里可以用ChromePhantomjs等,如果没有加入环境变量,需要指定具体的位置
driver = webdriver.Chrome()
driver.maximize_window()
driver.get(url)
print('开始登录')
driver.implicitly_wait(10)
chg_field = driver.find_element_by_class_name('login-main').find_element_by_id('TANGRAM__PSP_4__footerULoginBtn')
chg_field.click()

name_field = driver.find_element_by_id('TANGRAM__PSP_4__userName')
name_field.send_keys(name)
passwd_field = driver.find_element_by_id('TANGRAM__PSP_4__password')
passwd_field.send_keys(passwd)
login_button = driver.find_element_by_id('TANGRAM__PSP_4__submit')
login_button.click()
time.sleep(20)
return driver.get_cookies()

if __name__ == '__main__':
login_name = input('请输入你的登录账号:\n')
login_passwd = input('请输入你的登录密码:\n')
cookies = login(login_name, login_passwd)

这段代码是在python3.5上运行的,会自动打开百度登录页面,再填入账号进行登录。
1)首先安装selenium,命令是:pip install selenium,安装时遇到了一点问题,就是pip的版本太低,导致不能正确安装selenium,可以使用pip show pip 命令来查看当前pip版本,使用python -m pip install --upgrade pip命令来升级。升级pip之后可以正确安装selenium了。
2)测试过程中会自动调起浏览器,所以需要下载浏览器驱动,这里使用的是chrome,所以需要下载chromedriver,目前可用的下载地址是:http://npm.taobao.org/mirrors/chromedriver/。如果要使用firefox,需要下载firefoxdriver。
下载时要先查看你的浏览器版本,不同版本的浏览器需要下载对应的驱动版本,版本的对应问题可以去chromedriver官网上查看。我的chrome是V72,所以我下载的驱动版本是74.0 win32位的。如果使用的是linux系统,需要下载对应的linux版本。
3)下载的驱动是一个ZIP包,解压之后是chromedriver.exe文件。我是在python的安装主目录,也就是跟python.exe同一级的目录下新建了一个chromedriver文件夹,再把.exe文件放到该目录下。如果是linux系统,将.exe放到 /usr/bin 目录下即可。
4)配置操作系统环境变量,把驱动的所在目录添加到path变量的最后,我的所在目录是C:\Python27\chromedriver\chromedriver\。这里需要注意的是必须把驱动的文件名加到地址上,如果使用的是C:\Python27\chromedriver\,在测试过程中会报错的。

如果没有配置环境变量,也可以在代码中指定位置。上述代码中的第7行可以改为:driver = webdriver.Chrome(executable_path='C:/Python27/chromedriver/chromedriver')
浏览器调起成功后,会有下图红色框中的提示。

5)编码过程中需要获取元素name和id:在浏览器上按F12,点击元素,可以查看到相应的name和id。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册