【问题标题】:Python + Selenium: Path to driverPython + Selenium:驱动程序的路径
【发布时间】:2018-07-12 20:39:27
【问题描述】:
是否有可能运行 Python + Selenium 脚本而不在 Python 行的每个脚本中输入 exe 文件的路径:
driver = webdriver.Chrome().
同样的问题适用于“IE Driver”、“Edge Driver”和“Gecko Driver”。它可以由一些通用的python类来完成吗?我应该为它创建一些额外的文件吗?还是集成开发环境配置的问题?
我会很感激你的专家的话。
【问题讨论】:
标签:
python
selenium
selenium-chromedriver
【解决方案1】:
您可以更改source code。只需将 executable_path 的值分配给您的 chromedriver 路径。让我解释一下-
当你“正常”输入这个 -
driver = webdriver.Chrome(r"path\chromedriver.exe")
WebDriver 对象在其class 中初始化。类文件位于 //selenium_folder/webdriver/chrome/webdriver.py。在其中,如果您注意到__init__ 方法,它接受executable_path 的参数。所以你可以简单地做 -
def __init__(self, executable_path="chromedriver", port=0,
options=None, service_args=None,
desired_capabilities=None, service_log_path=None,
chrome_options=None):
executable_path = "path\chromedriver.exe"
这样,下面的代码就可以成功运行驱动了-
driver = webdriver.Chrome()
【解决方案2】:
无论您使用哪种操作系统,您都有多种选择来实现这一目标。
- 首先你可以把驱动文件(比如
chorme_driver.exe)放在一个相对的
文件夹到你的 python 文件。 (这是我通常做的)
driver = webdriver.Chrome('../chromedriver.exe')
driver = webdriver.PhantomJS('../phantomjs.exe')
- 你可以把地址写到
chrome driver
在 Windows、Linux 或 ... 中的 PATH 变量中...
driver = webdriver.Chrome('chromedriver.exe')
driver = webdriver.PhantomJS('phantomjs.exe')
driver = webdriver.Chrome(os.environ.get('CHROME_DRIVER_PATH'))
driver = webdriver.PhantomJS(os.environ.get('PHANTOMJS_DRIVER_PATH'))
【解决方案3】:
是的,您必须将驱动程序存储在 PATH 中。例如我的地址是C:\python\python(version)\lib\site-package\selenium\webdriver,然后将驱动程序存储在正确的文件夹中。还要确保将路径添加到您的机器环境变量中。
【解决方案4】:
这对我有用。我将驱动程序文件与我正在编码的应用程序放在同一个文件夹中,代码中的行如下所示:
web = webdriver.Chrome('./chromedriver.exe')