消息:在Web服务器上执行python selenium时,'chromedriver'可执行文件需要在PATH中

时间:2018-05-11 15:00:50

标签: php python web-services selenium webserver

我有一个python脚本用于使用selenium进行抓取。在我的本地笔记本电脑上一切顺利。 但是当我把这个python文件放在Web服务器上时,它总是有关于selenium的错误,现在由于

我无法成功执行
Traceback (most recent call last):
  File "test_availability.py", line 32, in <module>
    driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, chrome_options=chrome_options)
  File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 68, in __init__
    self.service.start()
  File "/usr/local/lib/python3.6/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. Please see https://sites.google.com/a/chromium.org/chromedriver/home

但是我将chromedriver放在与chromedriver位于Web服务器上本地笔记本电脑上的位置相同的位置。然后出现错误。 我尝试了很多方法,但这个错误仍然存​​在。

我将chromedriver放入网络服务器上的/usr/local/bin 我的问题不同于 selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH error with Headless Chrome 由于我已经使用了接受的acswer中的方法,但仍然显示错误

我需要在Web服务器上运行我的python文件。以下是我的代码:

CHROMEDRIVER_PATH = "/home/animalsp/public_html/maps/maps2/chromedriver"
WINDOW_SIZE ="1920,1080"
chrome_options = Options() 
chrome_options.add_argument("--headless")
chrome_options.add_argument("--window-size=%s" % WINDOW_SIZE)

driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, chrome_options=chrome_options)
driver.get("https://na.chargepoint.com/charge_point")

我甚至尝试过使用Firefox。以下是我使用Firefox的代码:

FIREFOXDRIVER_PATH ="/home/animalsp/public_html/maps/maps2/geckodriver"
WINDOW_SIZE ="1920,1080"
firefox_options = Options() 
firefox_options.add_argument("--headless")
firefox_options.add_argument("--window-size=%s" % WINDOW_SIZE)

driver = webdriver.Firefox(executable_path=FIREFOXDRIVER_PATH, firefox_options=firefox_options)
driver.get("https://na.chargepoint.com/charge_point")

有人可以帮我吗? 任何回复将不胜感激!

  

Selenium 3.12.0

     

python 3.6.5

     

Chrome 66.0

     

Chromedriver 2.3.8

     

Firefox 60

     

geckodriver v0.20.1

1 个答案:

答案 0 :(得分:2)

您需要将 chromedriver 可执行文件放在运行脚本的同一目录中,并将chrome_path更改为:

import os
chrome_path = os.path.realpath('chromedriver')