Selenium Python 提供了一个简单的API 便于我们使用 Selenium WebDriver编写 功能/验收测试。 通过Selenium Python的API,你可以直观地使用所有的 Selenium WebDriver 功能 。Selenium Python提供了一个很方便的接口来驱动 Selenium WebDriver , 例如Firefox、Chrome、Ie,以及Remote,目前支持的python版本有2.7或3.2以上.
selenium 可以自动化测试、抢票、爬虫等工作。初次了解,现在模拟登录百度——即自动打开浏览器、自动输入账号密码并提交进行登录。
测试环境:
python 3.5.0
selenium 3.8.0
chromedriver 2.33(chromedriver_win32.zip)
chrome浏览器 63.0.3239.84(正式版本) (64 位)
selenium 最新版安装:
pip install selenium
https://sites.google.com/a/chromium.org/chromedriver/downloads
在测试过程中,会遇到如下错误:
selenium.common.exceptions.WebDriverException: Message: Service xxxxxx unexpectedly exited. Status code was: 0
解决方法:将 chromedriver.exe 和 谷歌浏览器(Google Chrome)放到同一个目录
打开百度登录页面,确定各个输入文本框或按钮的id,如下图的用户名。同理找出密码及登录按钮的ID
测试脚本:
#-*- coding: utf-8 -*-
# python 3.5.0 + selenium 3.8.0 + chromedriver 2.33(chromedriver_win32.zip)
# https://sites.google.com/a/chromium.org/chromedriver/downloads
# chromedriver.exe 和 [Google Chrome] 放在同一文件夹
from selenium import webdriver
chromedriver = 'D:/Python35/selenium/webdriver/chromedriver.exe'
geturl = 'https://passport.baidu.com/v2/?login'
username = "用户名"
password = "密码"
browser = webdriver.Chrome(executable_path=chromedriver)
browser.get(geturl)
assert "登录百度帐号" in browser.title
browser.find_element_by_id("TANGRAM__PSP_3__userName").send_keys(username)
browser.find_element_by_id("TANGRAM__PSP_3__password").send_keys(password)
browser.find_element_by_id("TANGRAM__PSP_3__submit").click()
#browser.implicitly_wait(10)
#browser.quit()