如何在网络缓慢时停止pyautogui并恢复先前的程序代码

时间:2018-12-04 11:00:29

标签: python pyautogui

我在问有关Pyautogui的问题。 我想单击按钮/链接/图像,但是在我的国家/地区,互联网速度非常慢。因此,我尝试延迟该程序。但是有时它不起作用。该程序在出现在网站上之前,单击链接/图像/按钮。这就是我无法继续执行或整个程序失败的方式...无论如何,该程序可以找到按钮/链接/图像是否显示?如果未显示,则应等待30秒或1分钟以上。这就是我的程序每次都将运行的方式!我真的很想解决这个问题。希望您能答复。

1 个答案:

答案 0 :(得分:0)

如果您正在查看一堆内容不同的不同网页,这可能会很棘手。但是,如果您知道必须有特定的图像或链接文本,就可以了。

下面的

max_wait是这样,程序不会无限循环。使其变大。

对于您知道必须在页面中显示的特定图像,您可以尝试

import time
import pyautogui

found_image = False
max_wait = 120

x = time.time()
while (found_image == False) and time.time() - x < max_wait:
    if (pyautogui.locateOnScreen('my_png.png') is not None):
            found_image = True

if found_image: do_main_test()

对于文本,您可以使用pyautogui选择所有...

import time
import pyautogui
import pyperclip

x = time.time()
found_text = False
max_wait = 120

while (found_text == False) and time.time() - x < max_wait:
    pyautogui.click(150, 150) # or wherever is in the window
    pyautogui.hotkey('ctrl', 'a')
    pyautogui.hotkey('ctrl', 'c')
    pyautogui.click(x=150, y=150)
    lines = pyperclip.paste()
    found_text = needed_text in lines
    if not found_text: sleep(5) # this is so pyautogui isn't continually highlighting etc.

if found_text: do_main_test()

我对跟踪按钮一无所知,但希望文本和图像示例有用。当然,只有在do_main_test()found_text为true的情况下,您才可以指定运行found_image