我来自Ruby背景,我知道如何在Ruby Selenium Binding中做到这一点,但我不知道如何做到这一点Java Selenium Binding,
我有这段代码来创建Firefox个人资料
FirefoxProfile firefoxProfile = new FirefoxProfile(pathToProfile);
WebDriver driver=new FirefoxDriver(firefoxProfile);
它适用于硒2.53,但它在最近的硒结合3.11.0中引发错误,有谁能告诉我它的替代方案是什么?
而且我还想关掉牵线木偶连接到Legacy Firefox驱动程序,我可以使用以下代码执行此操作
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", false);
WebDriver driver=new FirefoxDriver(capabilities);
但是如果我使用上面的行,那么它就会弃用FirefoxDriver。任何人都可以指导我如何创建配置文件以及如何关闭牵线木偶?
答案 0 :(得分:5)
是的,class Entry(models.Model):
verbose_name_plural = 'entries'
# set verbose_name_plural as a class attribute
已被弃用。
替代方式将与选项一起使用:
FirefoxDriver(desiredCapabilities)
更新:[按顺序]
FirefoxOptions foptions = new FirefoxOptions(capabilities);
WebDriver driver=new FirefoxDriver(foptions);
答案 1 :(得分:1)
要首先使用现有的 Firefox配置文件进行测试执行,您必须按照{{3>上的说明手动创建 Firefox配置文件 }}。现在,您必须将 Firefox配置文件传递给 FirefoxOptions 类对象。此外,您将使用 Legacy Firefox Browser
您必须通过false
类对象将 marionatte 设置为 DesiredCapabilities
,您需要merge()
进入 FirefoxOptions < / em>类对象如下:
System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
ProfilesIni profile = new ProfilesIni();
FirefoxProfile testprofile = profile.getProfile("debanjan");
FirefoxOptions options = new FirefoxOptions();
options.setProfile(testprofile);
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability("marionatte", false);
options.merge(dc);
WebDriver driver = new FirefoxDriver(options);
driver.get("https://www.google.com");
我不确定您的 usecase 以及您希望使用旧版Firefox驱动程序的原因。但根据 GitHub 讨论Creating a new Firefox profile on Windows
@jimevans明确提到:
传统的Firefox驱动程序无法使用Firefox 53左右。您可能会启动浏览器,但语言绑定将完全无法与驱动程序通信(因为Firefox将拒绝加载作为旧版Firefox驱动程序的浏览器扩展)。
@barancev还提到:
绑定不应该通过符合W3C标准的有效负载部分的OSS功能,在&#34;功能&#34;块。他们被允许进入&#34; desiredCapabilities&#34;只阻止。也许,Mozilla在发布频道中打破了Firefox 48中的Selenium兼容性,但在esr频道的第52版中恢复了它。这是出乎意料的,但这是真的。
你可以采取明智的措辞。