是否可以将chrome webdriver文件设置为URL?

时间:2019-02-25 13:41:21

标签: java selenium selenium-webdriver webdriver selenium-chromedriver

我有以下代码来设置系统属性:

System.setProperty("webdriver.chrome.driver", "src\\main\\resources\\driver\\chromedriver.exe");

是否可以将chromedriver可执行文件存储在GitHub中,并在其他项目中使用它?像这样:

System.setProperty("webdriver.chrome.driver", "https://path_to_file/chromedriver.exe");

3 个答案:

答案 0 :(得分:1)

开源WebDriverManager可能是您所要求的最接近的解决方案。

#include "Enrollment.h"
#include "Student.h"
#include "Course.h"
#include "LoadData.cpp"

如果需要,此代码将负责为您的平台下载正确的webdriver可执行文件并设置环境。

答案 1 :(得分:0)

我认为不可能的原因是:

WebDriver使用协议与浏览器进行通信,称为WebDriver JSON Wire Protocol,实际上是在RESTful上使用JSON的{​​{1}} Web服务。

以下是其工作原理的说明: https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol

因此,根据需要使用驱动程序,应在外部源上运行HTTP,并应通过driver.exe与它进行通信。 唯一的方法就是改进并在硒的源代码中添加大量代码。

答案 2 :(得分:-1)

首先hhttps://path_to_file/..是一个URL,俗称网址是对web resource的引用,它指定了其在计算机网络上的位置,检索它的机制。 URL是Uniform Resource Identifier (URI)的特定类型。 HTTP protocol启用/允许客户端应用程序(通常是Web浏览器)创建HTTP请求,该请求包含要与之联系以进行信息交换的网站的名称。

Troubleshooting - ChromeDriver中提到

  

必须通过webdriver.chrome.driver系统属性设置chromedriver可执行文件的路径,并且chromedriver二进制文件必须位于系统路径中。

因此, Selenium 的客户端希望 WebDriver 可执行文件位于PATH中,即 WebDriver 可执行文件的位置添加到 OS 本机PATH变量中。


结论

因此可以得出结论,不可能将WebDriver可执行文件存储在GitHub中并在不同项目中使用它。


琐事

甚至 WebDriver 可执行文件,例如如果从网络路径访问 ChromeDriver GeckoDriver 不会被初始化。您可以在CreatePlatformSocket() returned an error: An invalid argument was supplied. (0x2726) when trying to access chromedriver through network path

中找到详细的讨论