Python 如何使用webbrowser方法等待页面完全加载?

Python 如何使用webbrowser方法等待页面完全加载?,python,Python,这是一个通过命令提示符打开google搜索的基本程序。有时,页面加载需要一段时间,因此在完全加载之前会按下enter按钮。当加载需要一段时间时,使用time.sleep()在大多数情况下都有效,但是有没有更有效的方法来实现这一点?我知道selenium有一些显式的等待方法,但是selenium需要花费一些时间来打开一个页面,在新浏览器上打开google搜索有点不切实际 您可以使用google搜索端点,因此您不需要在google主页上的搜索框中单击enter import webbrowser,

这是一个通过命令提示符打开google搜索的基本程序。有时,页面加载需要一段时间,因此在完全加载之前会按下enter按钮。当加载需要一段时间时,使用
time.sleep()
在大多数情况下都有效,但是有没有更有效的方法来实现这一点?我知道selenium有一些显式的等待方法,但是selenium需要花费一些时间来打开一个页面,在新浏览器上打开google搜索有点不切实际

您可以使用google
搜索
端点,因此您不需要在google主页上的搜索框中单击enter

import webbrowser, sys, time
import pyautogui

print("Googling...")
googleSearch = "+".join(sys.argv[1:])

if len(sys.argv) > 1:
    webbrowser.open_new_tab("https://google.com/?q=%s"%googleSearch)
    time.sleep(3)
    print("Enter button is pressed")
    pyautogui.typewrite(["enter"])
else:
    webbrowser.open_new_tab("https://www.google.com/")
也许这有帮助

我使用徽标来检测网站是否已加载。 但可能是任何东西,一个按钮,等等

safe_search = urllib.parse.quote_plus(search_term)
webbrowser.open_new_tab("https://google.com/search?q={}".format(safe_search)

你不能。
webbrowser
模块是一个非常简单的工具,除了要求用户的浏览器打开一个选项卡或窗口(并立即返回而不告诉您发生了什么)之外,它什么也做不了。您已经在使用
pyautogui
。如果你用它来驱动浏览器,你可以做任何你想做的事情。但它无法真正知道浏览器何时真正加载完毕,因为无法从程序外部看到。您可以使用
selenium
驱动浏览器,正如您所知。或者编写一个安装在浏览器中的Greasemonkey样式的脚本,该脚本以
pyautogui
可以识别的某种方式传递内部“完成”回调。或者嵌入一个浏览器,而不是使用用户的普通浏览器,或者可能是其他各种更困难的事情…
url = 'https://site'

webbrowser.open(url)

while True:
    logo = pyautogui.locateOnScreen('logo.png')
    if logo is not None:
        break

print logo