C# 当处于W3C模式(Selenium::WebDriver::Error::UnknownCommandError)且Selenium ChromeDriver在C中时,无法调用非W3C标准命令#

C# 当处于W3C模式(Selenium::WebDriver::Error::UnknownCommandError)且Selenium ChromeDriver在C中时,无法调用非W3C标准命令#,c#,selenium-webdriver,selenium-chromedriver,C#,Selenium Webdriver,Selenium Chromedriver,这与我们的场景相同 但这些解决方案似乎并不直接适用于C#,因此,与其在评论中询问,我认为更适合开始一个单独的线程 在Chrome升级到v.76之后,我不得不将Chromedriver.exe更新到v.76。我立刻开始发现标题中的错误。搜索该问题时,您会发现从v75开始,“ChromeDriver现在默认以W3C标准兼容模式运行”。建议的解决方法是“在ChromeOptions中指定W3C:false” 我正在寻求有关如何在.net Webdriver中指定此项的帮助 我使用ChromeOptio

这与我们的场景相同 但这些解决方案似乎并不直接适用于C#,因此,与其在评论中询问,我认为更适合开始一个单独的线程

在Chrome升级到v.76之后,我不得不将Chromedriver.exe更新到v.76。我立刻开始发现标题中的错误。搜索该问题时,您会发现从v75开始,“ChromeDriver现在默认以W3C标准兼容模式运行”。建议的解决方法是“在ChromeOptions中指定W3C:false”

我正在寻求有关如何在.net Webdriver中指定此项的帮助

我使用
ChromeOptions选项=新的ChromeOptions()然后我根据需要更新选项,然后再执行
driver=newchromedriver(@“c:\WebDriver”,options)

我还没有弄清楚如何添加“w3c”,例如,
add#u experimental_选项
在C#Webdriver中不存在

您可以尝试将UseSpectCompliantProtocol设置为false。默认情况下是这样的

在3.141中提供

    private const string UseSpecCompliantProtocolOption = "w3c";
    private bool useSpecCompliantProtocol = true;

        /// <summary>
        /// Gets or sets a value indicating whether the <see cref="ChromiumDriver"/> instance
        /// should use the legacy OSS protocol dialect or a dialect compliant with the W3C
        /// WebDriver Specification.
        /// </summary>
        public bool UseSpecCompliantProtocol
        {
            get { return this.useSpecCompliantProtocol; }
            set { this.useSpecCompliantProtocol = value; }
        }

谢谢你的回复。这似乎合乎逻辑,但并没有消除错误。您使用的是哪个版本的selenium?…现在它似乎已修复。我可以假设3.141是解决方案的必需部分吗?是的,至少对于c#binding来说,这是一个提交。在回答中添加了它。感谢您添加这一点,我刚刚回来说提交引用了selenium-4.0.0-alpha-2,但是变更日志确认它在3.141中。
options.UseSpecCompliantProtocol = false;