selenium + firefox + webdriver 遇到的坑

selenium + firefox + webdriver 遇到的坑

2018年07月28日 11:22:52 閱讀數:196 標籤: webdriverchromefirefoxDisplay 更多python

我的分類: 小bugweb

lunix中啓動webdriver時報錯一:

測試代碼爲:

 
  1. #!/usr/bin/pythonchrome

  2. # -*- coding: utf-8 -*-bootstrap

  3.  
  4.  
  5. from selenium import webdriversession

  6.  
  7. driver = webdriver.Firefox()多線程

  8. driver.get("https://www.baidu.com")測試

運行報錯信息以下:

 
  1. Traceback (most recent call last):spa

  2. File "maimai_web.py", line 14, in <module>.net

  3. driver = webdriver.Firefox()firefox

  4. File "/usr/local/python3.6/lib/python3.6/site-packages/selenium/webdriver/firefox/webdriver.py", line 152, in __init__

  5. keep_alive=True)

  6. File "/usr/local/python3.6/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 98, in __init__

  7. self.start_session(desired_capabilities, browser_profile)

  8. File "/usr/local/python3.6/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 188, in start_session

  9. response = self.execute(Command.NEW_SESSION, parameters)

  10. File "/usr/local/python3.6/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 256, in execute

  11. self.error_handler.check_response(response)

  12. File "/usr/local/python3.6/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response

  13. raise exception_class(message, screen, stacktrace)

  14. selenium.common.exceptions.WebDriverException: Message: Process unexpectedly closed with status 1

處理方法:

 
  1. #!/usr/bin/python

  2. # -*- coding: utf-8 -*-

  3.  
  4.  
  5. from pyvirtualdisplay import Display

  6. from selenium import webdriver

  7.  
  8.  
  9. display = Display(visible=0, size=(1920, 1080))

  10. display.start()

  11. driver = webdriver.Firefox()

  12. driver.get("https://www.baidu.com")

結果:

運行ok,搞定!

坑2、webdriver實例化報錯

採用多線程調用webdriver時候,偶爾會出現這樣的錯:selenium.common.exceptions.WebDriverException: Message: connection refused

 
  1. Exception in thread Thread-2:

  2. Traceback (most recent call last):

  3. File "/usr/local/python3.6/lib/python3.6/threading.py", line 916, in _bootstrap_inner

  4. self.run()

  5. File "/usr/local/python3.6/lib/python3.6/threading.py", line 864, in run

  6. self._target(*self._args, **self._kwargs)

  7. File "maimai_tran_account_driver.py", line 591, in debug

  8. t = TrainAccount(count,lock)

  9. File "maimai_tran_account_driver.py", line 32, in __init__

  10. self.chrome = webdriver.Firefox()

  11. File "/usr/local/python3.6/lib/python3.6/site-packages/selenium/webdriver/firefox/webdriver.py", line 152, in __init__

  12. keep_alive=True)

  13. File "/usr/local/python3.6/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 98, in __init__

  14. self.start_session(desired_capabilities, browser_profile)

  15. File "/usr/local/python3.6/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 188, in start_session

  16. response = self.execute(Command.NEW_SESSION, parameters)

  17. File "/usr/local/python3.6/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 256, in execute

  18. self.error_handler.check_response(response)

  19. File "/usr/local/python3.6/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response

  20. raise exception_class(message, screen, stacktrace)

  21. selenium.common.exceptions.WebDriverException: Message: connection refused

 查看geckodriver.log具體報錯信息。

後續的坑繼續填。。。