C# Selenium移动的仿真

3qpi33ja  于 2023-01-09  发布在  C#
关注(0)|答案(2)|浏览(179)

我正在.Net环境中使用C#使用Selenium进行一些移动的UI测试。
我能够做测试相当成功地使用 chrome 移动的模拟在纵向模式,但我找不到如何把模拟在横向模式。
我希望能够在测试过程中编程旋转,但通过研究,这似乎是不可能的。
在纵向模式下工作。

ChromeOptions chromeCapabilities = new ChromeOptions();         

        chromeCapabilities.EnableMobileEmulation("Apple iPhone 6");

        ChromeDriverService service = ChromeDriverService.CreateDefaultService(@"C:\chromedriver");            

        IWebDriver driver = new ChromeDriver(service, chromeCapabilities);
        driver.Navigate().GoToUrl("www.google.com");

然而,我如何把iPhone模拟到一个横向?
我试过这个方法,但不起作用,浏览器打开时没有大小限制

ChromeMobileEmulationDeviceSettings CMEDS = new ChromeMobileEmulationDeviceSettings();
        CMEDS.Width = 66;
        CMEDS.Height = 37;
        CMEDS.PixelRatio = 1.0;
        CMEDS.UserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25";

        ChromeOptions chromeCapabilities = new ChromeOptions();

        chromeCapabilities.EnableMobileEmulation(CMEDS);

        ChromeDriverService service = ChromeDriverService.CreateDefaultService(@"C:\chromedriver");

        IWebDriver driver = new ChromeDriver(service, chromeCapabilities);
        driver.Navigate().GoToUrl("www.google.com");

任何帮助或建议大大收到!!提前感谢

dl5txlt9

dl5txlt91#

据我所知,目前 * 无法更改屏幕方向 *。
以下是一个相关的未决问题:

源代码中有一些和一些提示让我想到,通过 * 添加一个定制的全新设备 *(如何以编程方式添加设备是一个悬而未决的问题),可能有一个面向“景观”的模拟设备。

mzsu5hc0

mzsu5hc02#

我认为有可能使用

emulation = {"width": 384, "height": 700, "deviceScaleFactor": 10, 
         "screenOrientation": {"type": "landscapePrimary", "angle": 0}},

driver.execute_cdp_cmd('Emulation.setDeviceMetricsOverride', emulation)

实际上,有一个使用Python的Selenium移动的仿真驱动程序,名为:Selenium-Profiles
文档 chrome 开发人员-方案(cdp_cmd)
可能的屏幕方向值为"portraitPrimary", "portraitSecondary", "landscapePrimary", "landscapeSecondary"

相关问题