使用 Python 网络浏览器访问内部 chrome 页面

Reaching internal chrome pages with Python webbrowser

我有一个程序,我使用 Python 的 webbrowser 模块打开浏览器并自动导航到页面。我的代码基本上如下所示:

import webbrowser

chrome_path = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s"
url = "whosebug.com"

webbrowser.get(chrome_path).open(url)

在普通站点上执行此操作时,它完全符合预期。但是,当我在格式为 chrome://<page>(例如 chrome://dinochrome://version)的内部 Chrome 站点中替换 url、Chrome按预期打开,但它不会导航到任何地方,而是停留在我的新标签页上。

为什么正常的 url(甚至 "hello world" 之类的字符串)可以按预期工作,但只有 chrome 特定的页面不能?有什么办法可以解决这个问题吗?

(顺便说一句,这是在 Windows 10 & Python 3.6.8 上)。

确实不行,但这不是webbrowser的错。

深入研究代码表明,在一天结束时,webbrowser 只需调用 subprocess.Popen(args),其中 args 最终成为

'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe <url>'.

如果你只是打开一个终端 window 并执行

"C:/Program Files (x86)/Google/Chrome/Application/chrome.exe" chrome://dino

你会得到完全相同的行为:Chrome 打开并停留在主页上,所以问题出在 Chrome 的代码中(错误或设计选择) .

它与 selenium 一起工作,因为我假设它正在使用一些 black-OS-magic(即进程间通信),因此它不依赖于 Chrome 的代码。它只是模仿用户。