1

我在 Selenium 中使用 java,我必须自动化一些测试,一些需要使用 Chrome Headless 和 Mobile Emulation。我知道如何使用“--auto-open-devtools-for-tabs”和“mobileEmulation”打开 chrome,但我需要在激活切换设备工具栏的情况下打开它。此模式模拟触摸交互事件,将点击替换为触摸。如何使用这种模式启动 Chrome?(我正在使用 ChromeDriver v.2.358161)

这是我的代码:

(...)
        Map<String, String> mobileEmulation = new HashMap<String, String>();
        mobileEmulation.put("deviceName", "Galaxy S5");
        ChromeOptions headlessOptions = new ChromeOptions();
        headlessOptions.setExperimentalOption("mobileEmulation", mobileEmulation);
        DesiredCapabilities capabilities = DesiredCapabilities.chrome();
        capabilities.setCapability(ChromeOptions.CAPABILITY, headlessOptions);
        driver = new ChromeDriver(capabilities);
(...)

我必须添加什么新论点?

(我做了一个机器人按下Ctrl+ shift+M但这不适用于 Chrome Headless)。

protected void pressModoResponsive() throws AWTException {
        pressF12();
        Robot robot = new Robot();
        robot.keyPress(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_SHIFT);
        waitSleep(1);
        robot.keyPress(KeyEvent.VK_M);
        waitSleep(1);
        robot.keyRelease(KeyEvent.VK_M);
        robot.keyRelease(KeyEvent.VK_SHIFT);
        robot.keyRelease(KeyEvent.VK_CONTROL);
    }
4

1 回答 1

1

我也有同样的问题。我无法让 WebDriver 在 selenium 中模拟移动设备。

解决方法是添加参数: --auto-open-devtools-for-tabs,然后将设备切换到移动设备并保留会话保存--user-data-dir

于 2019-11-08T00:02:19.867 回答