错误:已有一个移动仿真功能选项.请改用它.参数名称:功能名称

本文关键字:功能 参数 选项 有一个 移动 仿真 错误 | 更新日期: 2023-09-27 18:32:13

我已经将Selenium Webdriver C#更新到2.50.0版本,不幸的是,我也ChromeDriver更新到2.21版本,然后我遇到了一个问题。我倾向于认为它与新版本的ChromeDriver有关,但我也不确定新版本的硒。

我使用下一段代码来运行移动仿真:

var mobileEmulation = new Dictionary<string, string>
{
     {"deviceName", device}
};
ChromeOptions options = new ChromeOptions();
options.AddAdditionalCapability("mobileEmulation", mobileEmulation);

这效果很好。

现在在下一个字符串上:

options.AddAdditionalCapability("mobileEmulation", mobileEmulation);

它向我显示了下一个错误:

已经有一个移动仿真功能的选项。请 请改用它。参数名称:capabilityName

那么我应该使用什么作为此方法中的第一个参数呢?

错误:已有一个移动仿真功能选项.请改用它.参数名称:功能名称

这里要做的正确的做法是在ChromeOptions对象上使用 EnableMobileEmulation 方法。有两个重载。第一个重载采用一个字符串,该字符串旨在与设备名称一起使用。第二个重载采用一个ChromeMobileEmulationDeviceSettings对象,您可以在其上设置高度、宽度和像素比等内容。此方法允许使用类型安全的参数,并允许您正确设置mobileEmulation功能。代码如下所示:

// Assumes deviceName is a string variable containing the name
// of the device to emulate.
ChromeOptions options = new ChromeOptions();
options.EnableMobileEmulation(deviceName);

注意:此答案是指 .NET 绑定的 2.50.1 版本,它更正了此区域中的 API。

该检查是在不到一天前在Selenium 2.50中添加的:

https://github.com/SeleniumHQ/selenium/commit/6db8a5fd2bf8a1fc89d41467d1f21d073ffadfe0

我还没有找到任何文档,但似乎您需要使用新的类型安全ChromeMobileEmulationDeviceSettings类来设置移动仿真选项。希望从上面的差异中足够清楚您需要更改的内容。