Селен python возврат html с __VIEWSTATE - PullRequest
0 голосов
/ 13 июля 2020

Selenium python return html с __VIEWSTATE.

Я пытаюсь открыть страницу с селеном и выполнить отправку. Однако у условного идентификатора есть другое имя.

Это ограничение селена или чего-то еще на странице?

Это страница. http://www8.receita.fazenda.gov.br/SimplesNacional/aplicacoes.aspx?id=21

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

driver = webdriver.Remote(command_executor='http://localhost:4444/wd/hub',
         desired_capabilities=DesiredCapabilities.CHROME)

driver.get("http://www8.receita.fazenda.gov.br/SimplesNacional/aplicacoes.aspx?id=22")

#driver.find_element_by_id("Cnpj").send_keys("99999999999")
#inputElement.send_keys('99999999999')

print(driver.page_source)

driver.quit()

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

1 Ответ

1 голос
/ 13 июля 2020

Элемент input , который вам нужен, находится внутри iframe. Вам нужно сначала переключить iframe, чтобы получить доступ к элементу input.

Induce WebDriverWait () и подождите для frame_to_be_available_and_switch_to_it ()

Вызвать WebDriverWait () и дождаться element_to_be_clickable ()

Код :

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

driver=webdriver.Chrome()
driver.get("http://www8.receita.fazenda.gov.br/SimplesNacional/aplicacoes.aspx?id=21")
WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it((By.ID,"frame")))
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.ID,'Cnpj'))).send_keys("99999999999")

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...