您不能直接更改RemoteWebDriver
. RemoteWebDriver c# 文档。从文档中,您可以看到 RemoteWebDriver 是更具体的实现的抽象,例如FirefoxDriver
和ChromeDriver
。
这些实施暴露了偏好,如user.agent
. api 试图告诉你的是,并非所有人都RemoteWebDrivers
需要有偏好,因此它不是课程的一部分。
但是,您可以执行以下操作,因为FirefoxDriver 扩展了 RemoteWebDriver
RemoteWebDriver driver = new FirefoxDriver(profile);
您可以使用FirefoxProfile
和FirefoxDriver
FirefoxProfile profile = new FirefoxProfile();
profile.SetPreference("general.useragent.override", "Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25");
IWebDriver driver = new FirefoxDriver(profile);
一个完整的例子:
public static IWebDriver GetDriver(string driver, Devices device)
{
DeviceModel model = Device.Get(device);
IWebDriver webDriver;
switch (driver.ToLower())
{
case "safari":
webDriver = new SafariDriver();
break;
case "chrome":
webDriver = new ChromeDriver();
break;
case "ie":
webDriver = new InternetExplorerDriver();
break;
//case "firefox":
default:
var profile = new FirefoxProfile();
profile.SetPreference("general.useragent.override", model.UserAgent);
webDriver = new FirefoxDriver(profile);
webDriver.Manage().Window.Size = model.ScreenSize;
break;
}
return webDriver;
}