在现有标签中的Python中打开URL

时间:2019-01-19 16:14:21

标签: python

我正在使用Web命令来控制Sonoff。要更改设置,我在Python中运行以下行:

webbrowser.open('http://Sonoff_IP/cm?cmnd=POWER%20TOGGLE')

我正在寻找一种在同一选项卡中运行URL的方法,以免每次命令运行时都创建一个新的选项卡。

2 个答案:

答案 0 :(得分:0)

我的理解是,如果您正在使用webbrowser.open(<url>),则无法避免每次都获得一个新标签;使用webbrowser可以确保它在同一浏览器窗口中打开,但不能在同一选项卡中打开。要定位同一窗口,您需要将new=0设置为:

webbrowser.open('http://Sonoff_IP/cm?cmnd=POWER%20TOGGLE', 0);

但是,如果可以使用selenium库打开链接,则可以。

https://selenium-python.readthedocs.io/api.html

处阅读seleniumwebdriver的文档

使用Selenium进行此操作的主要问题是,我认为您无法定位用户的默认Web浏览器,并且默认情况下Selenium似乎默认为Firefox,因为Selenium库中包含了轻量级的Firefox端口本身。

在Selenium中打开链接的示例如下:

from selenium import webdriver

link1="https://www.google.com"
link2="https://www.youtube.com/"
driver=webdriver.Firefox()
driver.get(link1)
driver.get(link2)

Selenium确实支持许多不同的浏览器,因此,如果您能够从webbrowser模块或通过其他方法获取用户的默认Web浏览器,则可以使用该信息在其中打开URL。与用户的默认浏览器相同的标签。

希望这会有所帮助,祝你好运! :)

答案 1 :(得分:0)

使用JavaScript:

OpenSameTab = '<script language="JavaScript" type="text/JavaScript">window.location = \'%s\';</script>'

然后

print OpenSameTab % 'file.py'