Windows ChromeDriver+Python环境搭建

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)

运行成功!

你可能感兴趣的:(Windows ChromeDriver+Python环境搭建)