Webdriver wd = new ChromeDriver();和ChromeDriver wd = new ChromeDriver()之间的区别;

时间:2018-05-08 23:34:15

标签: selenium selenium-webdriver selenium-chromedriver

主要区别是什么:

Webdriver wd= new ChromeDriver();​

ChromeDriver wd= new ChromeDriver();​

我知道ChromeDriver是一个扩展RemoteWebDriver的类,后者又实现了WebDriver接口。 我想知道的是后来为什么不能工作?

2 个答案:

答案 0 :(得分:0)

就Java而言,WebDriver不是"类型"。这是一个界面。您不能使用WebDriver webDriver = new WebDriver();之类的构造,因为 WebDriver ,作为接口,只需声明在实现该接口的类中必须支持哪些方法。您不能仅仅因为它们尚未实现而调用WebDriver的方法。

ChromeDriver" 实施"接口WebDriver(更确切地说,它扩展了RemoteWebDriver,而RemoteWebDriver又实现了WebDriver接口)。因此,您可以创建ChromeDriver类型的对象。

答案 1 :(得分:0)

你有没有给出想法为什么要这样声明一个 WebElement 列表:

List<WebElement> ele = driver.findElements(By.xpath("some Xpath "));

而不是ArrayList<WebElement> or LinkedList<WebElement>

因为我们想要一些适用于我们列表的特定就绪配对方法。

无论哪种方式我们都可以调用chrome浏览器,我不知道为什么你提到了 后者不起作用? - 应该可行。

当您有一些特殊要求时,有时您可能希望使用 ChromeDriver 类:构造函数的调用和一些方法喜欢:

        driver.executeAsyncScript(script, args);
        driver.executeScript(script, args);
        driver.findElementByClassName(using);
        driver.findElementByCssSelector(using);
        driver.findElementById(using);
        driver.perform(actions);
        driver.setLocation(location);
        driver.getCapabilities();
        driver.getErrorHandler();
        driver.getFileDetector();
        driver.getMouse();
        driver.getKeyboard();

等等......