Есть ли решение для задачи с использованием библиотеки PyAutoGUI в Python?

Можно ли реализовать это с помощью pyautogui? <br/> Я хочу, чтобы скрипт находил одно изображение и кликал по нему только в том случае, если в другой заданной области не удастся найти другое изображение. <br/> Проблема заключается в том, что скрипт не сравнивает переменную "a" с результатом поиска. Терминал, похоже, игнорирует строку `if a != pyautogui.ImageNotFoundException:`. Если я устанавливаю значение confidence около 0.9 в первой строке поиска изображения, код выдает ошибку, что изображение не найдено. Я не знаю, как это исправить. Мне не удалось найти источники с похожими примерами. <br/> <br/> ```python
import pyautogui
from pyautogui import ImageNotFoundException

a = pyautogui.locateOnScreen('frt.png', region=(1267, 586, 1324, 799), confidence=0.9)
print(a)

if a != ImageNotFoundException:
    x, y = pyautogui.locateCenterOnScreen('Fr.png', region=(110, 555, 226, 671), confidence=0.4)
    print(x, y)

    pyautogui.keyDown('ctrlleft')
    pyautogui.click(x, y)
    pyautogui.keyUp('ctrlleft')
```
  • 16 сентября 2024 г. 5:13
Ответы на вопрос 2
Ваша проблема заключается в том, что ваша переменная `a` уже устанавливается в `None`, если изображение не найдено. Вместо того чтобы сравнивать `a` с `ImageNotFoundException`, вы должны просто проверить, является ли `a` `None`. 

В библиотеке `pyautogui`, если изображение не найдено, метод `locateOnScreen` возвращает `None`, а не вызывает исключение. Вот измененный код:

```python
import pyautogui

# Поиск первого изображения
a = pyautogui.locateOnScreen('frt.png', region=(1267, 586, 1324, 799), confidence=0.9)
print(a)

# Проверка, найдено ли первое изображение
if a is not None:
    # Изображение найдено, можно выполнить дальнейшие действия
    print("Первое изображение найдено. Скрипт завершает выполнение.")
else:
    # Изображение не найдено, пробуем найти второе изображение
    b = pyautogui.locateCenterOnScreen('Fr.png', region=(110, 555, 226, 671), confidence=0.4)
    if b is not None:
        x, y = b
        print("Второе изображение найдено на координатах:", x, y)

        pyautogui.keyDown('ctrlleft')
        pyautogui.click(x, y)
        pyautogui.keyUp('ctrlleft')
    else:
        print("Второе изображение не найдено.")
```

### Пояснение:
1. `a is not None`: Проверяет, найдено ли изображение `frt.png`.
2. Если `frt.png` не найдено (`a` равно `None`), тогда происходит поиск второго изображения `Fr.png`.
3. Мы также проверяем, найдено ли второе изображение (`b is not None`) перед выполнением щелчка.

Таким образом, код работает, чтобы найти первое изображение, и только если оно не найдено, ищет второе изображение и выполняет клик по нему.
Нужно отложить скрипт, взять учебник по Питону, и почитать, что такое исключения и как с ними работать ( оператор try-except ). 
Тогда станет понятно, почему твой код не работает, и как его поправить.
Похожие вопросы