PythonAnywhere 提供"FileNotFoundError"即使我使用的是 ChromeDriver 的绝对路径



我在PythonAnywhere上得到了以下代码:

from selenium import webdriver
import os
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_driver = os.path.abspath('C:/Users/ross/Desktop/chromedriver.exe')
browser = webdriver.Chrome(chrome_driver)
browser.get("https://www.google.com/")
WebDriverWait(browser,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "body > div.L3eUgb > div.o3j99.ikrT4e.om7nvf > form > div:nth-child(1) > div.A8SBwf > div.RNNXgb > div > div.a4bIc > input"))).send_keys("directions 3406 north seminary ave to 933 robinhood lane")
WebDriverWait(browser,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "body > div.L3eUgb > div.o3j99.ikrT4e.om7nvf > form > div:nth-child(1) > div.A8SBwf > div.FPdoLc.lJ9FBc > center > input.gNO89b"))).click()
value = WebDriverWait(browser,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"#exp0 > div.mGSxre.Ra9ql > div > div"))).text
print(value)

我引用的是绝对路径,当我在PyCharm上运行它时,代码就会工作。我得到以下错误:FileNotFoundError: [Errno 2] No such file or directory: '/home/rossleavitt/C:/Users/ross/Desktop/chromedriver.exe'并且在处理该错误时,我得到CCD_ 2。这里发生了什么?我需要升级我的PythonAnywhere帐户吗?

罗斯

您的问题显然与os.path.abspath('C:/Users/ross/Desktop/chromedriver.exe')行有关
可以看出,它返回的/home/rossleavitt/C:/Users/ross/Desktop/chromedriver.exe似乎不是chromedriver.exe文件的有效路径
正如我从os.path.abspath输出中看到的,即您在Linux机器上工作的/home/rossleavitt/
如果是,则chromedriver.exe不可能通过该路径C:/Users/ross/Desktop/chromedriver.exe定位
因此,这是Linux和Windows路径的混乱混合
如果我正确理解os.path.abspath的工作原理,如果您想使用os.path.abspath,您应该将chromedriver.exe文件的路径添加到系统path中
然后您可以将其简单地用作os.path.abspath(chromedriver.exe),它将返回chromedriver.exe文件的绝对路径。

PythonAnywhere上chromedriver的路径是/usr/local/bin/chromedriver,但您不需要它,因为/usr/local/bin/$PATH

Linux上的Chromedriver不是chromedriver.exe,而是chromedriver

要在Python上使用Chrome,您需要升级selenium。看见https://help.pythonanywhere.com/pages/selenium/

相关内容

  • 没有找到相关文章