美文网首页我爱编程
Windows ChromeDriver+Python环境搭建

Windows ChromeDriver+Python环境搭建

作者: 步履不停的Suunny | 来源:发表于2018-03-31 17:52 被阅读0次

    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环境搭建

        本文链接:https://www.haomeiwen.com/subject/pbfncftx.html