#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 в той же строке? Поделиться журналом трассировки