是否可以自动打开Goog​​le Chrome开发工具?

时间:2014-01-29 00:44:09

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

鉴于Selenium 2关闭了devtools窗口,其中包含我的用户配置文件中保存的我的模拟器配置文件。有没有办法触发devtools使用selenium脚本打开?

以下是关于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");

如果无法打开开发工具窗口或面板,有没有办法初始化模拟器?

6 个答案:

答案 0 :(得分:1)

<\ n>在终端输入以下内容 -

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

答案 1 :(得分:0)

你可以使用Robot类。它只是帮助您在任何浏览器上打开开发工具。

在您要打开开发工具

的地方使用此代码
    try{
        Robot robot=new Robot();
        robot.keyPress(KeyEvent.VK_F12);
        robot.keyRelease(KeyEvent.VK_F12);  
    }
    catch(Exception ex){
        System.out.println(ex.getMessage());
    }

答案 2 :(得分:0)

您可以使用下面给出的代码,它可以正常使用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);
}

答案 3 :(得分:0)

正如您提供的相同链接所述,自2.x以来,无法将ChromeDev工具与Selenium的ChromeDriver一起使用。它只是直接冲突,你可以使用其中一种。

执行变通方法的唯一方法是暂停所有Chrome驱动程序交互,通过其他自动化框架(如Robots API)启动DevTool,执行您需要的任何操作,然后继续。

但我可能会考虑开发工具需要什么,通过在启动时为Chrome提供正确的配置,是不是可以替代您需要的东西? (加载不同的配置文件,或加载模拟设备)

答案 4 :(得分:0)

为什么你还需要chrome devtools?

  • 是否用于监控网络流量?为什么不在firebug.xpibrowsermobproxy使用firefoxdriver。
  • 在模拟设备的浏览器中打开页面。这可以使用chrome完成,无需打开devtools。

带有Chrome模拟浏览器的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

答案 5 :(得分:-1)

您是否尝试过console API来满足您的需求?它允许您从JS内部调用一些开发工具函数。