我有一个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
答案 0 :(得分:2)
您需要将 chromedriver 可执行文件放在运行脚本的同一目录中,并将chrome_path更改为:
import os
chrome_path = os.path.realpath('chromedriver')