如何在Chrome中运行Selenium WebDrivertesting用例?

我试过这个

WebDriver driver = new ChromeDriver(); 

但我得到的错误

失败的testing:setUp(com.TEST):驱动程序可执行文件的path必须由webdriver.chrome.driver系统属性设置; 有关更多信息,请参阅http://code.google.com/p/selenium/wiki/ChromeDriver 。 最新版本可以从http://code.google.com/p/chromedriver/downloads/list下载

我如何让Chrome来testingSelenium-WebDrivertesting用例?

您需要从ChromeDriver下载下载可执行文件

然后,您只需在创build驱动程序对象之前使用以下内容(已按正确顺序显示):

 System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver"); WebDriver driver = new ChromeDriver(); 

这是从以下最有用的指南中提取的: https : //sites.google.com/a/chromium.org/chromedriver/

从这里下载铬驱动程序的更新版本

 public class Chrome { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "E://chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get("http://www.google.com"); } } 

点击这里后,你也可以看到答案

你应该在一个文件夹中下载chromeDriver,并将这个文件夹添加到你的PATHvariables中。 您将不得不重新启动您的控制台,使其工作。

在这里find最新版本的chromedriver 。 下载后,将其解压到您的python安装的根目录,例如C:/Program Files/Python-3.5 ,就是这样。 你甚至不需要指定任何地方的path和/或添加chromedriver到你的path或类似的东西。 我只是在一个干净的Python安装,它的工作原理。

您需要安装chrome驱动程序。 你可以使用块来安装这个包,如下所示

您可以使用以下代码在Chrome中使用Selenium Web驱动程序运行testing用例:

 import java.io.IOException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class ChromeTest { /** * @param args * @throws InterruptedException * @throws IOException */ public static void main(String[] args) throws InterruptedException, IOException { // Telling the system where to find the Chrome driver System.setProperty( "webdriver.chrome.driver", "E:/chromedriver_win32/chromedriver.exe"); WebDriver webDriver = new ChromeDriver(); // Open google.com webDriver.navigate().to("http://www.google.com"); String html = webDriver.getPageSource(); // Printing result here. System.out.println(html); webDriver.close(); webDriver.quit(); } } 

如果您在MacOS上使用自制软件,则可以使用以下命令:

 brew install chromedriver 

在没有其他configuration的情况下,它应该可以正常工作。

下载最新版本的chrome驱动程序并使用以下代码:

 System.setProperty("webdriver.chrome.driver", " path of chromedriver.exe"); WebDriver driver= new ChromeDriver(); driver.manage().window().maximize(); Thread.sleep(10000); driver.get("http://stackoverflow.com"); 

以上所有的答案都是正确的,下面是深入探讨问题和解决scheme。

以selenium为例的驱动构造函数

 WebDriver driver = new ChromeDriver(); 

search驱动程序可执行文件,在这种情况下,chrome驱动程序将searchchrome驱动程序的可执行文件,以防服务无法find可执行文件时引发exception

这是exception来自的地方(注意检查状态方法)

  /** * * @param exeName Name of the executable file to look for in PATH * @param exeProperty Name of a system property that specifies the path to the executable file * @param exeDocs The link to the driver documentation page * @param exeDownload The link to the driver download page * * @return The driver executable as a {@link File} object * @throws IllegalStateException If the executable not found or cannot be executed */ protected static File findExecutable( String exeName, String exeProperty, String exeDocs, String exeDownload) { String defaultPath = new ExecutableFinder().find(exeName); String exePath = System.getProperty(exeProperty, defaultPath); checkState(exePath != null, "The path to the driver executable must be set by the %s system property;" + " for more information, see %s. " + "The latest version can be downloaded from %s", exeProperty, exeDocs, exeDownload); File exe = new File(exePath); checkExecutable(exe); return exe; } 

以下是引发exception的检查状态方法

  /** * Ensures the truth of an expression involving the state of the calling instance, but not * involving any parameters to the calling method. * * <p>See {@link #checkState(boolean, String, Object...)} for details. */ public static void checkState( boolean b, @Nullable String errorMessageTemplate, @Nullable Object p1, @Nullable Object p2, @Nullable Object p3) { if (!b) { throw new IllegalStateException(format(errorMessageTemplate, p1, p2, p3)); } } 

解决scheme :如下创build驱动程序对象之前设置系统属性

 System.setProperty("webdriver.gecko.driver", "path/to/chromedriver.exe"); WebDriver driver = new ChromeDriver(); 

以下是驱动程序服务search驱动程序可执行文件的代码段(用于chrome和firefox):

铬:

  @Override protected File findDefaultExecutable() { return findExecutable("chromedriver", CHROME_DRIVER_EXE_PROPERTY, "https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver", "http://chromedriver.storage.googleapis.com/index.html"); } 

火狐:

 @Override protected File findDefaultExecutable() { return findExecutable( "geckodriver", GECKO_DRIVER_EXE_PROPERTY, "https://github.com/mozilla/geckodriver", "https://github.com/mozilla/geckodriver/releases"); } 

其中CHROME_DRIVER_EXE_PROPERTY =“webdriver.chrome.driver”和GECKO_DRIVER_EXE_PROPERTY =“webdriver.gecko.driver”

其他浏览器的情况类似,以下是可用浏览器实现列表的快照

在这里输入图像描述

您需要下载Chrome驱动程序的exe文件。 你可以从这个链接下载。

https://sites.google.com/a/chromium.org/chromedriver/

 System.setProperty("webdriver.chrome.driver", "path of chromedriver.exe"); ChromeDriver driver = new ChromeDriver();