Chrome 32 - 通过JS或webdriver控制仿真

时间:2014-01-21 08:19:34

标签: google-chrome selenium-webdriver webdriver google-chrome-devtools selenium-chromedriver

我爱new emulation feature introduced in the new Chrome。事实上,我喜欢用它来测试移动网站的多种分辨率/设备。为此,我需要对仿真功能进行某种控制。

有没有办法控制希望设备被模拟?

了解如何启动OpenQA.Selenium.Chrome.ChromeDriver模拟移动设备会很高兴。

提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以尝试向Chrome驱动程序添加选项。

ChromeOptions options = new ChromeOptions();
options.addArguments("--user-agent=Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3");

在上面的示例中," user-agent"已提供开关。同样请尝试使用" window-size"命令行开关。

如果有效,请告诉我。

下面提供了所有chrome命令行开关的列表。

http://peter.sh/experiments/chromium-command-line-switches/

注意:通过安装下面给出的Chrome插件,您可以获得各种设备所需的用户代理设置。

https://chrome.google.com/webstore/detail/user-agent-switcher-for-c/djflhoibgkdhkhhcedjiklpkjnoahfmg

答案 1 :(得分:0)

以下是我在C#中的表现:

IWebDriver driver;
        string setDevice = "Apple iPhone 6";
        var mobileEmulation = new Dictionary<string, string> { { "deviceName", setDevice } };
        var chromeOptions = new ChromeOptions();
        chromeOptions.AddAdditionalCapability( "mobileEmulation", mobileEmulation );
        driver = new ChromeDriver( chromeOptions );
        driver.Manage().Timeouts().SetPageLoadTimeout( TimeSpan.FromSeconds( 90 ) );
        driver.Manage().Timeouts().ImplicitlyWait( TimeSpan.FromSeconds( Convert.ToDouble( 30 ) ) );
        return driver;