@Xpym4uk76

Не находит элемент ввода текста с помощью Selenium, в чем причина?

Пишу код для вставки номера карты в поле для ввода, как я понял там стоит защита. Как мне ее обойти, прилаживаю фото кода страницы:
61505f932b28c579043774.png
И скриншот того что видит Selenium
61505f4ff1dad575557572.png

Код питона:
chrome_options = webdriver.ChromeOptions()
chrome_options.binary_location = os.environ.get("GOOGLE_CHROME_BIN")
chrome_options.add_argument("--headless")
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_argument("--no-sandbox")
driver = webdriver.Chrome(executable_path='chromedriver.exe', chrome_options=chrome_options)
driver.get("https://www.amediateka.ru/signin")
driver.maximize_window()
driver.find_element_by_xpath("//input[@class='registration__form-input'][@type='email']").send_keys("fdjjdje@gmail.com")
driver.find_element_by_xpath("//input[@class='registration__form-input'][@type='password']").send_keys("12211221Ma1")
driver.find_element_by_xpath("//button[@class='registration__form-button active']").click()
await asyncio.sleep(2)
driver.find_element_by_xpath("//div[@class='Menu_menu__burger__29MKo']").click()
await asyncio.sleep(0.1)
driver.find_element_by_xpath("//a[@class='Account_account__link__3ytrA'][text()='Покупки']").click()
await asyncio.sleep(4)
driver.find_element_by_xpath("//div[@class='settings-button settings-button_yellow-action']").click()
await asyncio.sleep(0.5)
driver.find_element_by_xpath("//button[@class='btn btn_block btn btn_primary']").click()
await asyncio.sleep(10)
driver.save_screenshot("screenshot.png")
try:
	driver.find_element_by_xpath("//input[@id='cardNumber'][@class='payment__input payment__card-field']").send_keys(card)
except:
	driver.find_element_by_css_selector('input#cardNumber.payment__input.payment__card-field')
	await asyncio.sleep(1)
driver.save_screenshot("screenshot_2.png")
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 1
Levman5
@Levman5
print(“Hello World!”)
А кликать по элементу прежде чем вводить данные:
to_card = driver.find_element_by_xpath("//input[@id='cardNumber'][@class='payment__input payment__card-field']")
to_card.click()
to_card.send_keys(card)


Иногда поле для ввода активируется только после нажатия
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы