Windows webdriver环境搭建 (Chrome)
浏览器:Chrome 版本 64.0.3282.186(正式版本) (32 位)
ChromeDriver:当前用的版本 2.32.498550 下载地址
selenium:selenium-3.11.0-py2.py3-none-any.whl
操作步骤:
- 1、将ChromeDriver放在d:\python27目录下
- 2、下载selenium-3.11.0-py2.py3-none-any.whl 并通过pip install file 安装到python环境
- 3、验证selenium是否安装成功:
打开python ide ,输入import selenium , 没有报错,成功! - 4、创建一个脚本,测试是否能够自动启动Chrome浏览器,自动进行操作
遇到的问题:
1、 创建文件名称为selenium.py,导致引入库失败,原因:
原因: 在当前目录有名叫selenium.py的文件,Python会先导入这个文件,然后再导入标准库里面的selenium.py。
解决办法: 可以使用
import selenium
print selenium.__file__
去看打印出的文件路径,如果不是类型下面的地址
C:\Python27\lib\site-packages\selenium-2.31.0-py2.7.egg\selenium__init__.pyc
需要把当前目录下的名叫selenium文件删除或者重命名
2、无法掉起Chrome
原因:没有将ChromeDriver.exe放到 Python27目录下,导致无法掉起Chrome
解决办法: 将ChromeDriver.exe放到Python27目录下就可以了
3、 运行错误:
RuntimeWarning: Parent module 'requests' not found while handling absolute import import selenium
报错信息
RuntimeWarning: Parent module '...' not found while handling absolute import
import selenium
RuntimeWarning: Parent module '...' not found while handling absolute import
import time
RuntimeWarning: Parent module '...' not found while handling absolute import
import unittest
原因及解决办法:
这是一个PyCharmd的已知问题,从2016.2版本就存在,目前为止还没解决。BUG地址
目前的解决办法是使用旧的utrunner.py替换新的utrunner.py
1、先找到pycharm目录
D:\Program Files (x86)\JetBrains\PyCharm 2016.3.2\helpers\pycharm
2、备份:utrunner.py
3、用旧的utrunner.py替换pycharm目录下的utrunner.py
附上旧版本: utrunner.py
测试环境
访问百度并进行搜索
# coding:utf-8
import selenium
print selenium.__file__
from selenium import webdriver
from selenium.webdriver.support.ui import Select
import unittest
import time
class Baidu(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(30)
self.base_url = "http://www.baidu.com"
self.verificationErrors = []
self.accept_next_alert = True #是否继续接受下一个警告
def test_baidu_serach(self):
u"""百度用例搜索"""
driver = self.driver
driver.get(self.base_url+"/")
driver.find_element_by_id("kw").send_keys("Selenium webdriver")
driver.find_element_by_id("su").click()
time.sleep(2)
driver.close()
def test_baidu_set(self):
driver = self.driver
driver.get(self.base_url+"/gaoji/preferences.html") #进入搜索设置页
Select(driver.find_element_by_id("nr")).select_by_visible_text(u"每页显示10条")
time.sleep(2)
driver.find_element_by_id("save").click()
time.sleep(2)
#driver.switch_to_alert().accept()
driver.switch_to.alert.accept()
time.sleep(2)
#保存百度的设置时会会弹出一个确定按钮;我们并没按照常规的方法去定位弹窗上的“确定”按钮,而是使用
#driver.switch_to_alert().accept()
def tearDown(self):
self.driver.quit()
self.assertEqual([],self.verificationErrors)
if __name__ == "__main__":
# unittest.main()
suite = unittest.TestSuite()
suite.addTest(Baidu("test_baidu_serach"))
suite.addTest(Baidu("test_baidu_set"))
unittest.TextTestRunner().run(suite)
运行成功!
网友评论