Java Selenium-使用WebDriver接口作为类型
这不是一个具体的问题,但我认为仍然有效 Selenium教程提供了获取驱动程序的示例:Java Selenium-使用WebDriver接口作为类型,java,selenium,Java,Selenium,这不是一个具体的问题,但我认为仍然有效 Selenium教程提供了获取驱动程序的示例: WebDriver driver = new FirefoxDriver(); 但是,这会阻止我们使用特定于浏览器的驱动程序方法。在我的例子中,它是setProxy()。因此,我使用: HtmlUnitDriver driver = new HtmlUnitDriver(); driver.setProxy("someproxy", 6666); 问题是:当我知道要使用哪个驱动程序时,为什么我要限制自己只
WebDriver driver = new FirefoxDriver();
但是,这会阻止我们使用特定于浏览器的驱动程序方法。在我的例子中,它是setProxy()。因此,我使用:
HtmlUnitDriver driver = new HtmlUnitDriver();
driver.setProxy("someproxy", 6666);
问题是:当我知道要使用哪个驱动程序时,为什么我要限制自己只使用WebDriver界面中的方法呢?
使用WebDriver界面作为一种类型更好,因为它提供了灵活性:在不同的时间可能需要不同类型的WebDriver(如FirefoxDriver或ChromeDriver等)
可以使用proxy和DesiredCapabilities设置代理。引用:
因此:
使用WebDriver界面作为一种类型更好,因为它提供了灵活性:在不同的时间可能需要不同类型的WebDriver(如FirefoxDriver或ChromeDriver等)
可以使用proxy和DesiredCapabilities设置代理。引用:
如果今天您使用驱动程序“a”和方法“foo”,明天您将驱动程序更改为“b”,但没有实现方法“foo”,会怎么样?在我的情况下,我必须使用setProxy()方法,因此没有它的WebDriver实现对我来说是无用的。在Selenium中还有其他方法设置代理吗?我想使用desiredcapabilites您可以实现这一点。这可能会很好,谢谢!如果今天您使用驱动程序“a”和方法“foo”,明天您将驱动程序更改为“b”,但没有实现方法“foo”,会怎么样?在我的情况下,我必须使用setProxy()方法,因此没有它的WebDriver实现对我来说是无用的。在Selenium中还有其他方法设置代理吗?我想使用desiredcapabilites您可以实现这一点。这可能会很好,谢谢!
String PROXY = "localhost:8080";
org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy();
proxy.setHttpProxy(PROXY)
.setFtpProxy(PROXY)
.setSslProxy(PROXY);
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.PROXY, proxy);
WebDriver driver = new FirefoxDriver(cap);