【问题标题】:Executable needs to be in PATH - Running Selenium on GNURoot on Android可执行文件需要在 PATH 中 - 在 Android 上的 GNURoot 上运行 Selenium
【发布时间】:2018-01-21 12:14:50
【问题描述】:

使用 pip 安装 Selenium。

尝试运行以下代码:

import selenium

from selenium import webdriver

\#driver = webdriver.Chrome()

driver = webdriver.Chrome(executable_path='/usr/bin/chromedriver')

time.sleep(5)

driver.quit()

我得到了什么:

python 5formscrape-selenium.py

Traceback(最近一次通话最后一次):

驱动程序中的文件“5formscrape-selenium.py”,第 5 行 = webdriver.Chrome(executable_path='/usr/bin/chromedriver')

文件 "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/chrome/webdriver.py", 第 62 行,在 init self.service.start()

文件 “/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/service.py”, 第 81 行,在 start os.path.basename(self.path) 中, self.start_error_message) selenium.common.exceptions.WebDriverException:消息:'chromedriver' 可执行文件需要在 PATH 中。请参见 https://sites.google.com/a/chromium.org/chromedriver/home

$PATH 包含/usr/bin/chromedriver

chromedriver 文件位于/usr/bin 中,具有权限

sudo chmod a*x chromedriver 

那么我在这里缺少什么?

【问题讨论】:

    标签: android python selenium webdriver


    【解决方案1】:

    chromdriver 需要在 PATH 中意味着它所在的目录应该在 PATH 中,而不是整个 PATH 本身。改变

    $PATH=/usr/bin/chromedriver:....
    

    $PATH=/usr/bin/:....
    

    去掉chromedriver,让selenium可以在/usr/bin中搜索chromedriver

    【讨论】:

    • 在你的脚本中添加这个并告诉我输出`import os;导入系统;导入子流程;打印(系统路径); print(os.getenv('PYTHONPATH')), print(subprocess.check_output(["which", "chromedriver"]));"
    • ['/sdcard/3python2', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-arm-linux-gnueabihf', '/usr/ lib/python2.7/lib-tk'、'/usr/lib/python2.7/lib-old'、'/usr/lib/python2.7/lib-dynload'、'/usr/local/lib/python2 .7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/pymodules/python2.7'] 无 /usr/bin/chromedriver
    • 如您所见,您的路径没有/usr/bin 目录。确保您使用 export 来导出 PATH 变量。 export PATH=/usr/bin:$PATH 在运行脚本之前
    • 我明白了!但是使用导出不会改变我的路径。如果我从终端打印它: # echo $PATH /usr/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/ bin:/usr/local/games:/usr/games
    • 将此添加到您的代码顶部 os.environ["PATH"] += os.pathsep + "/usr/bin" 看看是否有帮助
    猜你喜欢
    • 2017-05-17
    • 1970-01-01
    • 2017-03-26
    • 2018-03-25
    • 2022-01-16
    • 2018-10-22
    • 2017-03-05
    相关资源
    最近更新 更多