Сообщение: selenium.common.exceptions.TimeoutException

#python #selenium #iframe #webdriverwait #timeoutexception

#python #селен #iframe #webdriverwait #timeoutexception

Вопрос:

Я новичок в python и в настоящее время работаю над автоматической отправкой на странице оформления заказа. Я понимаю, что элемент находится внутри iframe, поэтому я использовал By.Xpath,"//iframe вместо этого.

 from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

WebDriverWait(driver, 15).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@id='newCard']")))
WebDriverWait(driver, 15).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='newCard' and @id='newCard']"))).send_keys("4242424242424242")
 

Но я все еще получаю эту ошибку ниже.

 Traceback (most recent call last):
  File "C:UsersUSERDesktopPython ScriptsNike_autologin_autofill_v2.py", line 44, in <module>
    WebDriverWait(driver, 15).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@id='newCard']")))
  File "C:UsersUSERAppDataLocalProgramsPythonPython39libsite-packagesseleniumwebdriversupportwait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: 
 

введите описание изображения здесь

Комментарии:

1. Можете ли вы добавить HTML-тег вашего iframe?

Ответ №1:

"iframe.newCard" CSS-селектор означает узел iframe с именем класса ‘newCard’

Вам нужно указать @class вместо @id . Попробуйте заменить

 "//iframe[@id='newCard']"
 

с

 "//iframe[@class='newCard']"
 

Комментарии:

1. я заменил его на @class, но все равно не работает.

2. @Ben вы получили TimeoutException в той же строке? Поделиться журналом трассировки