如何在 Python 中使用 Selenium 打开 chrome 开发者控制台?

Posted

技术标签:

【中文标题】如何在 Python 中使用 Selenium 打开 chrome 开发者控制台?【英文标题】:How to open chrome developer console using Selenium in Python? 【发布时间】:2015-09-05 00:41:41 【问题描述】:

我正在尝试使用 selenium webdriver 在 chrome 中打开开发者控制台。 我在做

从硒导入网络驱动程序

从 selenium.webdriver.common 导入 action_chains, 键

...

浏览器 = webdriver.Chrome(executable_path="C:\chrm\chromedriver.exe") browser.get("https://www.facebook.com/groups/GNexus5/")

...

action = action_chains.ActionChains(浏览器)

action.send_keys(keys.Keys.CONTROL+keys.Keys.SHIFT+'j')

action.perform()

但它并没有打开开发者控制台。 我已经尝试过其他键(只需键入一些击键,控制选择某些元素)并且它们正在工作。

我正在使用 ChromeDriver

【问题讨论】:

【参考方案1】:

在启动 chrome 时告诉 selenium 包含一个“auto-open-devtools-for-tabs”,这是一个使用 nightwatch 配置的示例:

...

chrome: 
  desiredCapabilities: 
    browserName: 'chrome',
    javascriptEnabled: true,
    acceptSslCerts: true,
    chromeOptions: 
      'args': ['incognito', 'disable-extensions', 'auto-open-devtools-for-tabs']
    
  
,
...

【讨论】:

【参考方案2】:

只有当您绝望并且您的操作系统是 Windows 时,您才可以通过将 AutoHotKey 脚本添加到 Python 代码来简单地做到这一点。你可以从here下载AutoHK

安装 AutoHK。然后在记事本中创建新脚本:只需输入一个短字符串

Send ^+J

并将其另存为script.ahk。这些操作将需要 2-3 分钟。然后在你的代码中调用它

browser.get("https://www.facebook.com/groups/GNexus5/")
import os
os.system("path_to_script.ahk/script.ahk")

这会起作用:)

【讨论】:

我不是那个意思。但是我已经尝试过send_keys 以及 key_down 并且在这两种情况下都没有结果。也在Firefox浏览器中尝试过,它可以工作。因此,ChromeDriver 似乎不支持组合键,如果不是强制您使用 Chrome,您只需将代码中的一行替换为 browser = webdriver.Firefox() @Andersson 问题是关于如何打开 Chrome 开发者控制台,所以使用 Firefox 显然不是一个可行的解决方法。【参考方案3】:

使用 pyautogui,您可以按键盘并在 foucs 中的选项卡中打开控制台。

    import pyautogui
    pyautogui.keyDown('ctrl')
    pyautogui.keyDown('shift')
    pyautogui.press('j')
    pyautogui.keyUp('ctrl')
    pyautogui.keyUp('shift')

【讨论】:

【参考方案4】:

虽然它本身并没有打开开发工具窗格,但我建议您参考 this answer,它解释了如何运行特定于开发工具控制台的命令。

如果你真的需要自己打开窗格,dev-tools documentation 中可能有答案。

仅供参考,您需要 Selenium version 4.0.0.b3 来执行这些操作。稳定版本不支持开发工具。

【讨论】:

【参考方案5】:

driver.find_element_by_xpath(<any element_name on the webpage>).send_keys(Keys.F12)

这会直接打开开发者控制台!

您也可以使用其他 find_by 方法。

【讨论】:

这对我不起作用。我尝试了driver.find_element_by_tag_name('body').send_keys(Keys.F12),但没有任何反应。 使用 Xpath 定位器为我工作。

以上是关于如何在 Python 中使用 Selenium 打开 chrome 开发者控制台?的主要内容,如果未能解决你的问题,请参考以下文章

selenium+python

如何在 Python 中使用 Selenium?

如何使用 python 和 Selenium 将 cookie 保存在浏览器中

如何在 python 中使用 selenium 下载 pdf 文件

如何在 Python 中使用 Selenium 在 Firefox 中禁用 Flash?

如何使用Selenium和Python在网站内的页面中导航?