Selenium webdriver Selenium WebDriver中的DesiredCapabilities在内部是如何工作的

Selenium webdriver Selenium WebDriver中的DesiredCapabilities在内部是如何工作的,selenium-webdriver,selenium-chromedriver,Selenium Webdriver,Selenium Chromedriver,我想知道SeleniumWebDriver中所需的功能在内部是如何工作的 例如,假设我的机器上有2个不同版本的Chromedriver.exe。在执行具有所需功能的代码时,它会选择哪个exe,为什么 所需功能如何在内部决定从哪个路径选择exe???WebDriver实例(即驱动程序)使用DesiredCapabilities类打开具有指定属性的浏览器会话。例如,以下代码将: 始终使用“C:\your\u path\”目录中的“chromedriver.exe” 通过DesiredCapabili

我想知道SeleniumWebDriver中所需的功能在内部是如何工作的

例如,假设我的机器上有2个不同版本的Chromedriver.exe。在执行具有所需功能的代码时,它会选择哪个exe,为什么


所需功能如何在内部决定从哪个路径选择exe???

WebDriver实例(即驱动程序)使用DesiredCapabilities类打开具有指定属性的浏览器会话。例如,以下代码将:

  • 始终使用“C:\your\u path\”目录中的“chromedriver.exe”
  • 通过DesiredCapabilities类,我们可以指定Chrome可执行文件的位置

  • 最后,您需要为驱动程序传递DesiredCapabilities实例,以打开具有这些功能的Chrome应用程序

    System.setProperty("webdriver.chrome.driver", "C:\\your_path\\chromedriver.exe");
    DesiredCapabilities capabilities = DesiredCapabilities.chrome();
    capabilities.setCapability("chrome.binary", "C:\\Program Files\\Google\\Chrome\\Application");
    WebDriver driver = new ChromeDriver(capabilities);
    driver.get("http:\\gmail.com"); 
    
  • 始终建议使用最新版本的驱动程序。驱动程序的最新版本/发行版解决了以前版本的bug/缺陷,并引入了新功能。因此,使用另一个旧版本的驱动程序并不是良好编程实践的一部分


  • 如果这能回答您的问题,请告诉我。

    我没有使用.setCapability()方法,因为我不想指定位置。我得到了我问题的答案。DesiredCapabilities在特定位置(约21个位置)搜索“chromedriver.exe”,如果我们没有定义它。它搜索的第一个位置是您的eclipse文件夹jdk bin。例如,ECLIPSE-4.5.1-X64\jdk1.8.0_66-X64\jre\bin@赫玛:你能告诉我那21个地点吗。或者一些文档。谢谢。位置取决于您的机器软件。对于我来说,下面是路径ECLIPSE-4.5.1-X64\jdk1.8.0_66-X64\jre\bin;ECLIPSE-4.5.1-X64///jdk1.8.0_66-X64/jre/bin/server;ECLIPSE-4.5.1-X64///jdk1.8.0_66-X64/jre/bin;ECLIPSE-4.5.1-X64///jdk1.8.0_66-X64/jre/lib/amd64;程序文件(x86)\git\git1.9.5\bin;WINDOWS\system32;窗户;WINDOWS\System32\Wbem;WINDOWS\System32\WindowsPowerShell\v1.0\;WINDOWS\System32\WindowsPowerShell\v1.0\;程序文件(x86)\Java\jre6\bin;程序文件(x86)\Java\jre7\bin;硒\宾;apache-maven-3.0.4\bin;JDK1.8.0_66-X64\bin;apache-tomcat-8.0.20/bin;ECLIPSE-4.5.1-X64;