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

时间:2018-04-12 23:09:26

标签: python

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/")

这是一个通过命令提示符打开谷歌搜索的基本程序。有时,页面需要一段时间才能加载,因此在完全加载之前将按下输入按钮。当加载需要一段时间时,使用time.sleep()工作的次数最多但是有更有效的方法吗?我知道selenium有一些明确的等待方法,但是selenium需要一点时间来打开一个页面,在新浏览器上打开谷歌搜索有点不切实际。

2 个答案:

答案 0 :(得分:0)

您可以使用Google search端点,因此您无需在Google主页上的搜索框中点击输入

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

答案 1 :(得分:0)

也许有帮助。

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

url = 'https://site'

webbrowser.open(url)

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

print logo