splinter安装问题总结: UnboundLocalError 和 WebDriverException

1,安装:在系统的命令行中输入以下命令

pip install splinter

2,UnboundLocalError
安装完毕之后,尝试输入下面的测试代码,
报出UnboundLocalError的错误
这个是pip安装版本里面既存的bug,解决方案参照
https://www.jianshu.com/p/a2d38addf2b0
从github里面拿最新的browser.py替换掉本地的browser.py
github地址:https://github.com/cobrateam/splinter/tree/master/splinter

>>> from splinter import Browser
>>> browser = Browser()
Traceback (most recent call last):
File "", line 1, in 
	browser = Browser()
File "C:\Users\test\AppData\Local\Programs\Python\Python37-32\lib\site-packages\splinter\browser.py", line 90, in Browser
return get_driver(driver, *args, **kwargs)
File "C:\Users\test\AppData\Local\Programs\Python\Python37-32\lib\site-packages\splinter\browser.py", line 68, in get_driver
raise e
UnboundLocalError: local variable 'e' referenced before assignment

3,selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’ executable needs to be in PATH

由于电脑上没有安装firefox(Browser默认使用firefox),用的是chrome,所以执行下面的命报错了。需要先安装chromedriver,
然后将chromedriver的位置加入到path环境变量中,再执行即可
chromedriver下载地址:https://chromedriver.storage.googleapis.com/index.html
解决方法实际步骤参照:https://www.cnblogs.com/lfri/p/10542797.html

>>> browser = Browser('chrome')
Traceback (most recent call last):
  File "C:\Users\test\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\common\service.py", line 76, in start
    stdin=PIPE)
  File "C:\Users\test\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 775, in __init__
    restore_signals, start_new_session)
  File "C:\Users\test\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 1178, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] 系统找不到指定的文件。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "", line 1, in 
    browser = Browser('chrome')
  File "C:\Users\test\AppData\Local\Programs\Python\Python37-32\lib\site-packages\splinter\browser.py", line 87, in Browser
    return get_driver(driver, *args, **kwargs)
  File "C:\Users\test\AppData\Local\Programs\Python\Python37-32\lib\site-packages\splinter\browser.py", line 68, in get_driver
    raise err
  File "C:\Users\test\AppData\Local\Programs\Python\Python37-32\lib\site-packages\splinter\browser.py", line 64, in get_driver
    return driver(*args, **kwargs)
  File "C:\Users\test\AppData\Local\Programs\Python\Python37-32\lib\site-packages\splinter\driver\webdriver\chrome.py", line 43, in __init__
    self.driver = Chrome(options=options, **kwargs)
  File "C:\Users\test\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 73, in __init__
    self.service.start()
  File "C:\Users\test\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\common\service.py", line 83, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. 

你可能感兴趣的:(02.Python(基础知识))