我有以下代码来设置系统属性:
System.setProperty("webdriver.chrome.driver", "src\\main\\resources\\driver\\chromedriver.exe");
是否可以将chromedriver可执行文件存储在GitHub中,并在其他项目中使用它?像这样:
System.setProperty("webdriver.chrome.driver", "https://path_to_file/chromedriver.exe");
答案 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
中找到详细的讨论