当前位置: 首页 > 面试题库 >

如何通过Java使用Selenium将功能和选项传递给Firefoxdriver

华哲茂
2023-03-14
问题内容

我有这个:

System.setProperty("webdriver.gecko.driver", "gecko/linux/geckodriver");

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.proxy.no_proxies_on", "localhost");
profile.setPreference("javascript.enabled", true);

DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
capabilities.setCapability(FirefoxDriver.PROFILE, profile);

FirefoxOptions options = new FirefoxOptions();
options.setLogLevel(Level.FINEST);
options.addPreference("browser.link.open_newwindow", 3);
options.addPreference("browser.link.open_newwindow.restriction", 0);

现在我有两个不同的构造函数:

WebDriver driver = new FirefoxDriver(capabilities);

WebDriver driver = new FirefoxDriver(options);

如何将它们(功能和选项)都传递给driver?顺便说一句,IDE告诉我FirefoxDriver(capabilities)不推荐使用。


问题答案:

你快到了 您需要使用的方法
merge()

MutableCapabilities

类的合并 DesiredCapabilities 类型的对象为 FirefoxOptions 类型的对象和启动 的webdriver
Web客户端 通过传递实例 FirefoxOptions 对象,如下所示:

System.setProperty("webdriver.gecko.driver", "gecko/linux/geckodriver");

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.proxy.no_proxies_on", "localhost");
profile.setPreference("javascript.enabled", true);

DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
capabilities.setCapability(FirefoxDriver.PROFILE, profile);

FirefoxOptions options = new FirefoxOptions();
options.merge(capabilities);
options.setLogLevel(Level.FINEST);
options.addPreference("browser.link.open_newwindow", 3);
options.addPreference("browser.link.open_newwindow.restriction", 0);

WebDriver driver = new FirefoxDriver(options);


 类似资料:
  • 本文向大家介绍如何使用Python将选项传递给Selenium Chrome驱动程序?,包括了如何使用Python将选项传递给Selenium Chrome驱动程序?的使用技巧和注意事项,需要的朋友参考一下 我们可以使用Python将选项传递给Selenium Chrome驱动程序。这可以借助ChromeOptions和DesiredCapabilities类的帮助。对于ChromeOptions

  • 问题内容: 我正在尝试禁用Chrome控制台的输出。如果我通过–start-maximized选项,则可以正常工作。我可能输入了错误的命令? 我也试过 输出量 已启动的ChromeDriver端口= 26703版本= 23.0.1240.0 log = / Brett / workspace / TestNG / chromedriver.log [1214/161331:ERROR:ipc_sy

  • 因此,在这里我将basePackages硬编码为“com.example”。这不是我想要的。我想通过命令行参数从终端运行应用程序时接收包名。有没有一种方法可以将命令行参数传递给应用程序,并使用我在BasePackages中接收到的参数?提前致谢

  • 作为React课程的一部分,我正在制作一个虚拟电子商店,并希望将产品从一个组件的状态传递到功能组件并在那里显示产品属性。如何将数据从状态传递到无状态组件? 我设置了一个组件ProductList,它存储产品(从api获取)和ProductDetail,它应该显示详细信息(通过id找到产品并显示它的描述、img等)。我设置了一个pp.js,它有两个路由-列表和详细信息。 pp.js: Product

  • 问题内容: 请移至第二次更新。 我不想更改此问题的先前上下文。 我正在使用Java应用程序中的wkhtmltoimage。 使用它的标准方法是- 。 根据他们的文档,如果我们编写一个URL而不是输入URL,则输入将转换为STDIN。 我正在使用- 现在,我无法弄清楚如何将输入流传输到此过程。 我有一个读入的模板文件,并在末尾附加了一个字符串: 如何通过管道传递到流程的? 更新- 遵循Andrzej

  • 问题内容: 我创建了一个参数化的Jenkins作业,该作业将变量从Java传递到。 这是Java: 所以这很简单,因为我只是将s 传递给工作。但是,我现在想使用Jenkins中的A将A传递给工作。 我看到的一件事是Jenkins中的拥有一个和。因此,甚至不知道如何从Java将其设置为参数。 这可能吗? 问题答案: 这是一个可运行的类。使用apache-httpclient(4.5.1)和相关的ja