我什么时候应该在selenium C#中使用DriverOptions?
例:
public void test(){
DriverOptions capacidades;
}
这取代了DesiredCapabilities?
DriverOptions
本身是一个抽象类,因此,你很少直接使用它,并且可能只引用你创建一个抽象方法,接受继承具体作为参数(例如,某种浏览器不可知的启动方法) 。请参阅此处的课程文档:https://seleniumhq.github.io/selenium/docs/api/dotnet/html/T_OpenQA_Selenium_DriverOptions.htm
Selenium还提供了许多实现 - 对于每个支持的浏览器驱动程序,它看起来都是一个。继承层次结构列在上面的链接中。您可以指定命令行参数,浏览器exe的文件路径,安装扩展等内容,以自定义您要查找的特定浏览器流程实例。
编辑:专门针对DesiredCapabilities
vs DriverOptions
- 是的,你是对的,DriverOptions
实际上是DesiredCapabilities
的替代品。下面的几个链接表明,如果在您使用的SDK中可用,则首选使用DriverOptions
实现,而不是DesiredCapabilities
是未提供此类实现的客户端的备份选项,例如ruby(在时间这个答案)。
https://sites.google.com/a/chromium.org/chromedriver/capabilities
扩展David Jetter的答案我可以给出一个特定的驱动程序实现示例。我在App.config中存储chrome选项,如:
<!-- 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);
因此,您可以看到您可以设置默认窗口大小和位置,如果您想要无头模式则设置;你可以实现几个选项。