我在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/