3

我正在编写一个使用 webbrowser 模块和 .open 函数打开 Internet Explorer 的脚本。默认情况下,在我的系统上,这会以全屏视图打开 IE。有没有办法指定将打开的浏览器窗口的大小/位置(宽度、高度、x、y)?

示例:我想打开一个 IE 窗口@一个特定的 URL(即谷歌地图),并让窗口位于我屏幕的右下角。

就像我说的,我目前正在使用 webbrowser.open 在 IE 中打开 Google 地图页面,但我愿意接受任何其他允许我在打开 IE 窗口时指定大小/位置的方法。

- 谢谢

4

3 回答 3

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 选项卡转到您的 cmd.exe 并运行脚本(在我的情况下,向上箭头,输入)

所以一旦你有了,你就可以

webbrowser.open_new('http://google.com')
click(x,y)

它不完全是你想要的,但也许你可以做一些点击拖动和调整大小?你得看看

于 2013-02-11T06:15:37.650 回答
1

您可以使用网络视图:

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

于 2020-06-30T14:32:54.483 回答
0

我看到这可能的唯一方法是,如果此网页在所需位置有一个 HTML 锚 (#),或者您实际上有权编辑网页以插入该锚。webbrowser 模块没有太多的函数和参数来访问系统的浏览器。如果锚点存在,您可以简单地将链接指向它,例如:

mylink = "http://www.mysite.com/mywebpage.html#myanchor"
webbrowser.open_new(mylink)
于 2011-11-21T19:33:39.030 回答