WebDriver是实现FirefoxDriver、ChromeDriver、InternetExplorerDriver的接口。这些特定于浏览器的驱动程序实现了 WebDriver 接口中定义的所有方法。作为用户,您仅使用 WebDriver 的方法(通过使用 WebDriver 对象调用它们),并且已被每个驱动程序如何实现这些方法所隐藏。因此,您无需担心方法的每个实现。
但您唯一需要指定的内容如下:
在 Firefox 浏览器上运行测试:
WebDriver driver = new FirefoxDriver();
在 Firefox 浏览器上运行测试:
WebDriver driver = new ChromeDriver();
在 Internet 浏览器上运行测试:
WebDriver driver = new InternetExplorerDriver();
同样,对于几乎所有浏览器,我们都有相应的可用驱动程序类。
除了语言 WebDriver 库外,您还需要为每个浏览器下载 .exe 文件。
geckodriver.exe - firefox 48.0 and above (before 48 version, firefox has built-in support and no need of geckodriver.exe
chromedriver.exe - all chrome versions
InternetExplorerDriver.exe - all IE versions
一旦你下载了它们,你就可以让 selenium 知道这些可执行文件的保存位置:
System.setProperty("browser_key", "/path/to/the/driver")
example:
System.setProperty("webdriver.firefox.marionette","G:\\Selenium\\Firefox driver\\geckodriver.exe"); // to set path to firefox driver, similary for chrome and IE browser.
remember key changes based on the browser.
或者,您可以将 .exe 保留在 PATH 环境变量中(在 Windows 中)或其他操作系统中的类似功能。
获得驱动实例后,就可以使用WebDriver接口上所有可用的方法了。(these are browser independent)
例如:
driver.get("http://www.google.com") // to lauch browser and visit google page
WebElement searchField = driver.findElement(By.id("SearchInput")) // to find an element in a page. returns a WebElement object.
searchField.sendKeys("search something") // to enter text into input field.
参考资料:
- https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebDriver.html
- https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/firefox/FirefoxDriver.html