我有一个程序,使用Python的webbrowser
模块打开浏览器并自动导航到页面。我的代码基本上如下所示:
import webbrowser
chrome_path = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s"
url = "stackoverflow.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上)。
答案 0 :(得分:1)
这确实行不通,但这不是webbrowser
的错。
深入研究代码表明,webbrowser
最终只是调用subprocess.Popen(args)
,其中args
最终成为
'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe <url>'
。
如果您只是打开一个终端窗口并执行
"C:/Program Files (x86)/Google/Chrome/Application/chrome.exe" chrome://dino
您将获得完全相同的行为:Chrome打开并停留在主页上,因此问题出在Chrome的代码中(错误或设计选择)。
它可以与selenium
一起使用,因为我认为它使用的是黑色OS魔术(即进程间通信),因此它不依赖于Chrome的代码。它只是模仿用户。