Можно ли автоматически открыть Google Chrome devtools?

Учитывая, что Selenium 2 закрывает окно devtools, которое содержит мой профиль эмулятора, сохраненный в моем профиле пользователя для chrome. Есть ли способ запустить devtools для открытия с использованием селена script?

Вот информация о проблеме закрытия окна devtools https://sites.google.com/a/chromium.org/chromedriver/help/devtools-window-keeps-closing

Я чувствую себя немного истощенным, пробовав некоторые из этих параметров переопределения Chromium, только один из которых, кажется, работает http://peter.sh/experiments/chromium-command-line-switches/

Тот, который имел какое-либо влияние, следующий

options.addArguments("user-data-dir=/Path/to/chrome/profile");

Если нет возможности открыть окно или панель инструментов dev, есть ли способ инициализировать эмулятор?

Ответ 1

на терминале введите следующее -

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --auto-open-devtools-for-tabs

Ответ 2

Вы можете использовать класс Robot для этого. Он просто поможет вам открыть инструменты для разработчиков в любом браузере.

Используйте этот код в месте, где вы хотите открыть dev-tools

    try{
        Robot robot=new Robot();
        robot.keyPress(KeyEvent.VK_F12);
        robot.keyRelease(KeyEvent.VK_F12);  
    }
    catch(Exception ex){
        System.out.println(ex.getMessage());
    }

Ответ 3

Вы можете использовать приведенный ниже код, он отлично работает с FireFox, просто изменив браузер

public void open(String url) {
    driver.get(url);
    Actions action = new Actions(driver);
    String pressF12=Keys.chord(Keys.F12,"");
    driver.findElement(By.id("lst-ib")).sendKeys(pressF12);
}

Ответ 4

Как указано в приведенной вами ссылке, невозможно использовать инструменты ChromeDev с Selenium ChromeDriver с версии 2.x. Это просто в прямом конфликте, вы можете использовать один или другой.

Единственный способ выполнения обходного пути - приостановить всю интерактивность chrome-драйвера, запустить DevTool через некоторые другие рамки автоматизации, такие как Robots API, сделать все, что вам нужно, и продолжить.

Но я мог бы подумать над тем, что мне нужно от dev tools, разве нет альтернативы тому, что вам нужно, предоставляя Chrome правильную конфигурацию при запуске? (загрузка другого профиля или загрузка эмулируемого устройства)

Ответ 5

Зачем вам нужен chrome devtools?

  • Это для мониторинга сетевого трафика? Почему бы не использовать firefoxdriver с firebug.xpi или browsermobproxy.
  • Чтобы открыть страницу в эмулированном браузере устройства. Это можно сделать с помощью хром, не открывая devtools.

WebDriver с хром-эмулированным браузером

Это фрагмент кода, который можно использовать для запуска браузера Chrome в конкретной версии эмулирования. Обратите внимание, что ключевое значение здесь - это значение deviceName, которое должно соответствовать, как указано в браузере Chrome.

public static WebDriver MobileOpen()
{
    Map<String, String> mobileEmulation = new HashMap<String, String>();
    System.setProperty("webdriver.chrome.driver","path/to/chromedriver");
    mobileEmulation.put("deviceName", "Google Nexus 6");
    Map<String, Object> chromeOptions = new HashMap<String, Object>();
    chromeOptions.put("mobileEmulation", mobileEmulation);

    DesiredCapabilities capabilities = DesiredCapabilities.chrome();
    capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);

    WebDriver driver = new ChromeDriver(capabilities);
    return driver;
}

Надеюсь, это поможет.
Изменить: Я только видел, что это 3-летняя должность. Вероятно, парень нашел дорогу домой.: P

Ответ 6

Вы пробовали консольный API для ваших нужд? Это позволит вам вызывать некоторые функции dev-tool изнутри JS.