这是一个常见的问题,但我不清楚我在互联网或StackOverflow上找到的答案。
当我们在selenium WebDriver
(例如selenium webdriver和Java)中实例化一个对象时,我们通常会写(作为正常做法),
WebDriver driver = new FirefoxDriver();
或使用WebDriver
界面的任何其他实现(Chrome,IE,Safari,AndroidDriver
等)。
为什么我们不使用下面的内容
FirefoxDriver fx = new FirefoxDriver();
WebDriver是一个接口,只能访问由特定浏览器实现类实现的WebDriver
方法。引用不能访问不在FireFoxDriver
接口中的WebDriver
的方法。
如果我错了,请纠正我。
答案 0 :(得分:2)
您始终需要调用 WebDriver ,因为它包含测试所需的所有方法。
以下是示例:
protected static WebDriver driver = new ChromeDriver();
或
protected static WebDriver driver = new FirefoxDriver();
答案 1 :(得分:1)
您必须使用接口WebDriver
而不是实现。这是一种通用技术:
接口的代码/编程
因此,如果将来您需要切换到其他驱动程序,请说从ChromeDriver
切换到FirefoxDriver
您的代码将保持不变。