主要区别是什么:
Webdriver wd= new ChromeDriver();
和
ChromeDriver wd= new ChromeDriver();
我知道ChromeDriver是一个扩展RemoteWebDriver的类,后者又实现了WebDriver接口。 我想知道的是后来为什么不能工作?
答案 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();
等等......