Ниже мой HTML код. Я попытался с помощью xpath и до сих пор получаю исключение из-за невозможности найти элемент в форме создания учетной записи.
Поскольку требуемый элемент находится в пределах <iframe>, поэтому для вызова click() на элементе необходимо:
<iframe>
click()
frame_to_be_available_and_switch_to_it()
element_to_be_clickable()
Вы можете использовать любой из следующих Стратегий локатора :
Использование CSS_SELECTOR:
CSS_SELECTOR
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe#accountFrame[src='/account/frame/login/create']"))) WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[placeholder='Email'][data-test='create-account-email']"))).click()
Использование XPATH:
XPATH
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@id='accountFrame' and @src='/account/frame/login/create']"))) WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//input[@placeholder='Email' and @data-test='create-account-email']"))).click()
Примечание : необходимо добавить следующие операции импорта:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
Вы можете найти пара соответствующих обсуждений в: