Python + Selenium:驱动程序的路径

时间:2018-02-02 10:52:25

标签: python selenium selenium-chromedriver

是否有可能运行Python + Selenium脚本而不在Python行的每个脚本中输入exe文件的路径:

driver = webdriver.Chrome().

同样的问题适用于" IE驱动程序","边缘驱动程序"和#34; Gecko Driver"。它可以由一些通用的python类完成,我应该为它创建一些额外的文件吗?或者是集成开发环境配置问题?

我很感激你的专家。

3 个答案:

答案 0 :(得分:1)

无论您使用哪种操作系统,都有多种选择可以实现。

  • 首先您可以将驱动程序文件(如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'))

答案 1 :(得分:1)

您可以更改source code。只需将setTimeout的值分配给您的chromedriver路径即可。让我解释一下-

当您“正常”输入时-

executable_path

driver = webdriver.Chrome(r"path\chromedriver.exe") 对象在其class中初始化。该类文件位于//selenium_folder/webdriver/chrome/webdriver.py。在其中,如果您注意到WebDriver方法,它将采用__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"

答案 2 :(得分:0)

是的,您必须将驱动程序存储在PATH中。例如我的位于C:\python\python(version)\lib\site-package\selenium\webdriver,然后将驱动程序存储在正确的文件夹中。还要确保将路径添加到您的机器环境变量中。