C# 如何在selenium远程web驱动程序中更改用户代理
我将使用selenium远程web驱动程序测试我的web应用程序。 在我的情况下,我应该使用firefox web驱动程序。 现在我不知道在这种情况下我该如何更改我的useragent 这是我使用远程web驱动程序的代码C# 如何在selenium远程web驱动程序中更改用户代理,c#,asp.net,selenium-grid,selenium-remotedriver,C#,Asp.net,Selenium Grid,Selenium Remotedriver,我将使用selenium远程web驱动程序测试我的web应用程序。 在我的情况下,我应该使用firefox web驱动程序。 现在我不知道在这种情况下我该如何更改我的useragent 这是我使用远程web驱动程序的代码 DesiredCapabilities Capabilities = new DesiredCapabilities(); Capabilities.SetCapability(CapabilityType.BrowserName, "firefox");
DesiredCapabilities Capabilities = new DesiredCapabilities();
Capabilities.SetCapability(CapabilityType.BrowserName, "firefox");
string GridURL = "http://localhost:4545/wd/hub";
driver = new RemoteWebDriver(new Uri(GridURL), Capabilities);
您不能直接更改
RemoteWebDriver
。从文档中,您可以看到RemoteWebDriver是更具体实现的抽象,如FirefoxDriver
和ChromeDriver
这些实现公开了一些首选项,比如user.agent
。api试图告诉您的是,并非所有的RemoteWebDrivers
都需要有首选项,因此它不是类的一部分
但是,您可以执行以下操作:
您可以使用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);
:
您不能直接更改
RemoteWebDriver
。从文档中,您可以看到RemoteWebDriver是更具体实现的抽象,如FirefoxDriver
和ChromeDriver
这些实现公开了一些首选项,比如user.agent
。api试图告诉您的是,并非所有的RemoteWebDrivers
都需要有首选项,因此它不是类的一部分
但是,您可以执行以下操作:
您可以使用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);
:
可能重复:在此链接中显示如何更改firefox webdriver中的用户代理远程webdriver中的否可能重复:在此链接中显示如何更改firefox webdriver中的用户代理远程webdriver中的否我将更改firefox webdriver中的远程webdriver中的用户代理否!!!!你不能。firefox驱动程序扩展了远程web驱动程序。检查文档,远程web驱动程序没有任何内容可以公开配置文件。顺便说一下,当您使用FirefoxDriver时,您正在使用RemoteWebDriver。您甚至可以不强制转换就将FirefoxDriver分配给RemoteWebDriver。我将在remoter webdriver中更改用户代理firefox webdriver中的no!!!!你不能。firefox驱动程序扩展了远程web驱动程序。检查文档,远程web驱动程序没有任何内容可以公开配置文件。顺便说一下,当您使用FirefoxDriver时,您正在使用RemoteWebDriver。您甚至可以将FirefoxDriver分配给RemoteWebDriver,而无需强制转换。
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;
}