2 回答
TA贡献1801条经验 获得超16个赞
DriverOptions
本身是一个抽象类,因此,您很少直接使用它,并且可能仅在您创建一个接受继承的具体作为参数的抽象方法时引用(例如,某种与浏览器无关的启动方法)。在此处查看类文档:https ://seleniumhq.github.io/selenium/docs/api/dotnet/html/T_OpenQA_Selenium_DriverOptions.htm
Selenium 还提供了许多实现——它看起来像每个受支持的浏览器驱动程序都有一个。继承层次结构在上面的链接中列出。您可以指定命令行参数、浏览器 exe 的文件路径、要安装的扩展等,以自定义您要查找的特定浏览器进程实例。
编辑:要专门解决DesiredCapabilities
vs DriverOptions
- 是的,你是对的,DriverOptions
实际上是DesiredCapabilities
. 下面的几个链接表明,DriverOptions
如果它在您使用的 SDK 中可用,则首选使用该实现,而DesiredCapabilities
对于未提供此类实现的客户端(例如 ruby)则不是备份选项(在此答案时) )。
https://sites.google.com/a/chromium.org/chromedriver/capabilities
https://sqa.stackexchange.com/questions/23559/what-is-the-difference-between-desiredcapabilities-chromeoptions-and-when-to-u
TA贡献1812条经验 获得超5个赞
扩展 David Jetter 的回答,我可以给出一个特定的驱动程序实现示例。我将 chrome 选项存储在 App.config 中,例如:
<!-- Chrome browser settings for web driver OPTIONAL -->
<!-- https://chromium.googlesource.com/chromium/src/+/master/chrome/common/chrome_switches.cc -->
<add key="chrome:setting1" value="--window-size=1600,1100" />
<add key="chrome:setting2" value="--window-position=2150,5" />
<add key="chrome:setting3" value="--headless" />
然后在 Test 基类中做这样的事情:
var options = new ChromeOptions();
// Set all options from the app.config
foreach (string key in ConfigurationManager.AppSettings.AllKeys.Where(k => k.StartsWith("chrome:setting")))
options.AddArgument(ConfigurationManager.AppSettings[key]);
driver = new OpenQA.Selenium.Chrome.ChromeDriver(options);
所以可以看到可以设置默认的窗口大小和位置,设置是否要无头模式;您可以实施几个选项。
- 2 回答
- 0 关注
- 231 浏览
添加回答
举报