Я делаю программу, в которой пользователь входит в свою учетную запись (выполнено на 100%), и после этого он заходит на сайт (www.site.com (не этот)) и ищет элемент. Проблема: Элемент не всегда есть, он появляется СЛУЧАЙНО, поэтому я хотел создать программу, в которой, когда он не получает капли (конфеты), он переходит на другую вкладку.
Я перепробовал много вещей,изменение циклов, добавление / удаление вещей из try, кроме etc ...
for i in range(10000):
while True:
print("Starting!")
try:
element = browser.find_element_by_xpath('//*[@id="redeem-candy-voucher"]')#.click()
except NoSuchElementException:
pass
browser.execute_script("arguments[0].click();", element)
print("Clicked Candy! Skullbux Gained!")
time.sleep(3)
browser.execute_script("window.open('');")
browser.switch_to.window(browser.window_handles[1])
browser.get("https://www.brickplanet.com/events/trick-or-treat")
time.sleep(3)
try:
element = browser.find_element_by_xpath('//*[@id="redeem-candy-voucher"]')#.click()
except NoSuchElementException:
pass
browser.execute_script("arguments[0].click();", element)
print("Clicked Candy! 0.25 Gained!")
#browser.close()
time.sleep(5)
Возможны 2 ошибки. Когда он находит элемент, он обновляет страницу и затем выдает ошибку:
DevTools listening on ws://127.0.0.1:52479/devtools/browser/a2cfa4b3-e538-49fb-872c-114db52513ce
Starting!
Clicked Candy! Skullbux Gained!
Traceback (most recent call last):
File "C:\Users\DOMA\Desktop\bp hack.py", line 54, in <module>
browser.execute_script("arguments[0].click();", element)
File "C:\Users\DOMA\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 636, in execute_script
'args': converted_args})['value']
File "C:\Users\DOMA\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\DOMA\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
(Session info: chrome=77.0.3865.90)
И когда он вообще не находит никакого элемента:
DevTools listening on ws://127.0.0.1:52432/devtools/browser/9250b0fb-2742-4a8b-9043-b7cdbec1f8e3
Starting!
Traceback (most recent call last):
File "C:\Users\DOMA\Desktop\bp hack.py", line 38, in <module>
browser.execute_script("arguments[0].click();", element)
NameError: name 'element' is not defined
Process returned 1 (0x1) execution time : 20.796 s
Press any key to continue . . .