Сообщение: selenium.common.exceptions.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:\Users\USER\Desktop\Python Scripts\Nike_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:\Users\USER\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: 

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


person Ben    schedule 14.12.2020    source источник
comment
Можете ли вы добавить HTML-тег в свой iframe?   -  person jackblk    schedule 15.12.2020


Ответы (1)


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

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

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

с участием

"//iframe[@class='newCard']"
person Parolla    schedule 14.12.2020
comment
Я заменил его на @class, но все равно не работает. - person Ben; 14.12.2020
comment
@Ben, вы получили исключение TimeOutException в той же строке? Поделиться журналом трассировки - person Parolla; 14.12.2020