Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在selenium远程web驱动程序中更改用户代理_C#_Asp.net_Selenium Grid_Selenium Remotedriver - Fatal编程技术网

C# 如何在selenium远程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");

我将使用selenium远程web驱动程序测试我的web应用程序。 在我的情况下,我应该使用firefox web驱动程序。 现在我不知道在这种情况下我该如何更改我的useragent

这是我使用远程web驱动程序的代码

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;
 }