webbrowser python在同一个标​​签中打开新的url。这有用吗?

时间:2017-04-03 02:06:53

标签: python url web browser

在我看来,Python的webbrowser'new = 0'功能(see here),在同一个标​​签或窗口中打开一个新的URL,并不起作用。

文档使用狡猾的语言,如“ if if possible”“来掩盖这个问题。

有没有人在webbrowser模块中看到过这项功能的成功?是否有任何已知的解决方法来实现此功能?

我尝试使用

设置webbrowser
webbrowser.get(TYPE)

继续打开网址之前。我也试过使用大量不同的浏览器,但仍然没有成功。这是不可能的吗?我应该只使用 selenium 吗?

其中,我已经查看了7年前的this帖子。我希望从那时起事情发生了变化,人们已经找到了解决方法。

非常感谢任何帮助或见解。

1 个答案:

答案 0 :(得分:1)

我正在使用MacOS和Chrome并遇到了这个问题。我注意到对于MacOS,webbrowser.py只是构建了一个小苹果脚本并使用“开放位置”命令打开了URL,例如,

script = 'open location "%s"' % url.replace('"', '%22') 

内置的“开放位置”命令似乎不支持在现有标签中打开网址

我在AppleScript示例中搜索过,发现您可以使用Chrome applescript字典中的命令在活动标签中打开网址,如下所示:

tell application "Google Chrome"
    tell front window
        set URL of active tab to "www.google.com"
    end tell
end tell

我只需要在本地项目上执行此操作,因此我只是在“脚本”变量中使用覆盖字符串的脏修复来强制它使用后一种格式,如下所示:

# script = 'open location "%s"' % url.replace('"', '%22') 
script = '''tell application "Google Chrome"
    tell front window
        set URL of active tab to "%s"
    end tell
end tell ''' % url.replace('"', '%22')