使用 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://dino
或 chrome://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 的代码。它只是模仿用户。
我有一个程序,我使用 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://dino
或 chrome://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 的代码。它只是模仿用户。