Python: 有没有方法在使用webbrowser模块打开浏览器窗口时指定大小/位置(高度、宽度、x、y)?
我正在写一个脚本,想用webbrowser模块和.open函数打开Internet Explorer(IE)。在我的系统上,默认情况下打开IE时是全屏显示的。请问有没有办法指定打开的浏览器窗口的大小和位置(宽度、高度、x坐标、y坐标)呢?
举个例子,我想打开一个IE窗口,访问特定的网址(比如谷歌地图),并且希望这个窗口位于我屏幕的右下角。
就像我说的,我现在是用webbrowser.open来打开谷歌地图的IE页面,但我也愿意尝试其他方法,只要能让我在打开时指定IE窗口的大小和位置就行。
--谢谢
3 个回答
0
我觉得这个问题可能的解决办法就是,如果这个网页上有一个锚点(#)在你想要的位置,或者你能编辑这个网页来添加那个锚点。因为webbrowser模块的功能和参数不多,不能直接控制系统的浏览器。如果锚点存在,你可以直接把链接指向它,比如:
mylink = "http://www.mysite.com/mywebpage.html#myanchor"
webbrowser.open_new(mylink)
1
你可以使用网页视图(webview):
import webview
window = webview.create_window("your custom title for th window", 'https://www.website.com')
webview.start()
你可以随意调整窗口的大小:
webview.create_window(title, url='', html='', js_api=None, width=800, height=600,
x=None, y=None, resizable=True, fullscreen=False, \
min_size=(200, 100), hidden=False, frameless=False, \
minimized=False, confirm_close=False, background_color='#FFF', \
text_select=False)
不过你必须在主线程中调用它。这里有相关的文档:https://pywebview.flowrl.com/blog/pywebview3.html
1
我从这里的另一个帖子里拿了一些代码,这段代码基本上是用Windows的API来控制鼠标(你需要安装pywin模块)。
def click(x,y):
win32api.SetCursorPos((x,y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)
经过进一步的研究,我找到了获取鼠标位置的方法。这个小脚本可以获取鼠标的x和y坐标。
import win32api, win32con
import win32gui
x, y = win32api.GetCursorPos()
print '[*] X coordinate: %s\n[*] Y coordinate: %s'%(x,y)
所以你只需要在打开Firefox时,把鼠标放在最大化图标上,然后按下Alt键和Tab键切换到cmd.exe,运行这个脚本(在我的情况下,是按上箭头,然后回车)。
一旦你这样做了,你就可以直接
webbrowser.open_new('http://google.com')
click(x,y)
这可能不是你想要的完全功能,但也许你可以尝试点击拖动和调整大小?你需要自己去探索一下。