在selenium java客户端中,addarguments和setpreference方法之间有什么区别?

gk7wooem  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(527)

在使用java和selenium时,当我在google上搜索如何更改某个行为时,我经常会找到一些示例,说明如何使用addargument或set\u preferences更改设置,如下所示:

options.addArguments("dom.webdriver.enabled=False");
    options.addArguments("useAutomationExtension=False");

    profile.setPreference("dom.webdriver.enabled", False);
    profile.setPreference("useAutomationExtension", False);

看javadoc不是很有用:


有人能解释一下这两者之间的关系吗?概念上有什么不同吗?它们看起来很重叠。
此外,还有 desiredCapabilities 以及 capabilities 这似乎也很相似。它们为什么存在,它们之间又是如何联系的?

zf9nrax1

zf9nrax11#

添加参数() addArguments() 是一种配置abstractdriveroptions以管理firefox特定设置的方法,geckodriver可以通过使用firefoxoptions类的示例来理解这种方法。

例如:

FirefoxOptions option=new FirefoxOptions();
options.addArguments("start-maximized");

setpreference() setPreference() 是一种配置firefoxprofile特定设置的方法,geckodriver可以通过firefoxprofile类的示例来理解。

例如:

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.dir", "/home/ranjith/Downloads");
profile.setPreference("browser.download.folderList", 2);

参考文献

您可以在中找到一些相关的详细讨论:
无法解析构造函数firefoxdriver(org.openqa.selenium.firefox.firefoxprofile)
无法在webdriver中传递firefoxprofile参数以使用首选项下载文件

1szpjjfi

1szpjjfi2#

https://www.chromium.org/administrators/configuring-other-preferences
首选项是用于控制浏览器行为的设置,支持的首选项的完整列表可在以下位置找到:
https://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/pref_names.cc?view=markup
参数是可以作为命令行参数传递给chrome浏览器的命令

chrome.exe --headless

https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/chromium/chromiumoptions.html#addarguments(java.lang.string…)
对于firefox:
论据:https://developer.mozilla.org/en-us/docs/mozilla/command_line_options
在firefox配置中添加所有设置(您可以通过键入about:config in 地址栏)可以使用options.addpreference设置

相关问题