什么时候应该在selenium C#上使用DriverOptions

问题描述 投票:0回答:2

我什么时候应该在selenium C#中使用DriverOptions?

例:

public void test(){
      DriverOptions capacidades;

}

这取代了DesiredCapabilities?

c# selenium testing selenium-webdriver automated-tests
2个回答
0
投票

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

https://sqa.stackexchange.com/questions/23559/what-is-the-difference-between-desiredcapabilities-chromeoptions-and-when-to-u


0
投票

扩展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);

因此,您可以看到您可以设置默认窗口大小和位置,如果您想要无头模式则设置;你可以实现几个选项。

© www.soinside.com 2019 - 2024. All rights reserved.