Как остановить pyautogui при медленном интернете и возобновить предыдущий программный код - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть вопрос по поводу Pyautogui.Я хочу нажать на кнопку / ссылку / изображение, но в моей стране скорость Интернета очень низкая.Поэтому я пытаюсь отложить программу.Но иногда это не работает.Программа нажимает на ссылку / изображение / кнопку, прежде чем она появится на сайте.Вот почему я не могу продолжить или вся программа выходит из строя.

Есть ли способ, которым программа может определить местонахождение, если кнопка / ссылка / изображение отображается или нет?Если он не отображается, следует подождать еще 30 секунд или 1 минуту.Вот так я хочу, чтобы моя программа работала каждый раз.Я действительно хочу решить эту проблему.Я надеюсь, что вы ответите.

1 Ответ

0 голосов
/ 08 августа 2019

Это может быть сложно, если вы смотрите на кучу разных веб-страниц с разным содержанием.Но если вы знаете конкретное изображение или текст ссылки, который должен быть там, у вас должно быть все в порядке.

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 и found_image - true.

...