Редактировать: кажется, что проблема проистекает из следующих строк:
apply = pyautogui.locateOnScreen("apply.png")
if apply is not None:
x, y = pyautogui.locateCenterOnScreen('apply.png')
pyautogui.click(x,y)
есть ли в любом случае сделать это так, чтобы вы могли запустить оператор if, чтобы проверить, есть ли изображение?
Предупреждение: очень новое для python
Моя цель - автоматизировать подачу заявок на самом деле .ca, используя последнюю версию Firefox, полностью развернутое окно.Пока я просто работаю над 1 страницей, а код не идеален.Он запускается, нажимает на первую вакансию, находит оранжевую кнопку «Применить сейчас» справа, нажимает на нее, которая открывает форму, заполняет форму, загружает резюме, нажимает на продолжение, затем применяет клики, которые отправляют окончательную форму.
У меня 2 проблемы:
Я не уверен, как сказать программе: если это изображение существует где-либо на странице.вместо этого у меня есть if apply is not None:
, который я не уверен, работает ли он или нет.Я только знаю, что if applynow == None:
работает.
Я выполнил тест на одной из должностей, он должен был его передать, но дал мне сообщение об ошибке «Ошибка типа: не могураспаковать не повторяемый объект NoneType ", что означает, что изображение не существует ... Это здорово, но эта часть находится в операторе else, а не в начальном операторе if.Первоначальный оператор if должен был сработать первым ... поэтому предполагалось, что он просто нажимает «применить» вместо того, чтобы проходить через оператор «else», так что либо изображение «apply» не обнаружено, либо python должен пройти через оператор «else»перед выполнением, которое портит выполнение, если это имеет какой-то смысл.Я не уверен, с какой проблемой я столкнулся, поэтому любая помощь приветствуется.
ошибка:
x, y = pyautogui.locateCenterOnScreen('continue2.png')
TypeError: cannot unpack non-iterable NoneType object
ссылка: https://www.indeed.ca/jobs?q=engineer&l=Vancouver%2C%20BC&start=40&vjk=64c9d891c652bd2b
import pyautogui, time
pyautogui.PAUSE = 1
pyautogui.FAILSAFE = True
time.sleep(5)
pyautogui.click(863,330)
applynow = pyautogui.locateOnScreen("applynow.png")
confirmyourapplication = pyautogui.locateOnScreen("confirmyourapplication.png")
confirmonnextpage = pyautogui.locateOnScreen("confirmonnextpage.png")
howmanyyears = pyautogui.locateOnScreen("howmanyyears.png")
apply = pyautogui.locateOnScreen("apply.png")
for i in range (0, 9):
if applynow == None:
pyautogui.scroll(-425)
x, y = pyautogui.position()
pyautogui.click(x,y)
else:
x, y = pyautogui.locateCenterOnScreen('applynow.png')
pyautogui.click(x,y)
pyautogui.press('tab')
pyautogui.press('tab')
pyautogui.typewrite('Jake Williams', 0.25)
pyautogui.press('tab')
pyautogui.typewrite('jwilliam02@hotmail.com', 0.25)
pyautogui.press('tab')
pyautogui.typewrite('719-985-3546', 0.25)
x, y = pyautogui.locateCenterOnScreen('browse.png')
pyautogui.click(x,y)
pyautogui.typewrite('resume', 0.25)
pyautogui.press('enter')
x, y = pyautogui.locateCenterOnScreen('continue.png')
pyautogui.click(x,y)
time.sleep(2)
## insert function here
if apply is not None:
x, y = pyautogui.locateCenterOnScreen('apply.png')
pyautogui.click(x,y)
x, y = pyautogui.locateCenterOnScreen('close.png')
pyautogui.click(x,y)
else:
for j in range (0, 3):
if howmanyyears is not None:
x, y = pyautogui.locateCenterOnScreen('howmanyyears.png')
pyautogui.click(x,y)
pyautogui.typewrite('3', 0.25)
x, y = pyautogui.locateCenterOnScreen('continue2.png')
pyautogui.click(x,y)
time.sleep(2)
x, y = pyautogui.locateCenterOnScreen('apply.png')
pyautogui.click(x,y)
x, y = pyautogui.locateCenterOnScreen('close.png')
pyautogui.click(x,y)