Парсинг селена https://myip.ms

Пишу парсер для https://myip.ms Я не могу зарегистрироваться. Я написал, что парсер откроет окно регистрации, но я не могу ввести никаких данных, возникает ошибка selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
import time
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get("https://myip.ms/#a")

button = driver.find_elements_by_xpath('//*[@id="fixed_width_page"]/table/tbody/tr/td/table[1]/tbody/tr/td[2]/div[2]/span[2]/a[1]')
if len(button) > 0:
    button[0].click()
driver.implicitly_wait(50)
print('Работает')

login = driver.find_element_by_xpath('/html/body/div[6]/div[2]/div/form/table/tbody/tr[1]/td[2]/span/input')
print('Работает 2')
time.sleep(10)

driver.implicitly_wait(50)
print(login)
if len(login) > 0:
    print('tut')
login.send_keys('фвыфы')

person Коля Нарушев    schedule 30.01.2021    source источник


Ответы (1)


Чтобы отправить последовательность символов в поле Электронная почта, вам необходимо вызвать WebDriverWait для _ 1_, и вы можете использовать любое из следующих Стратегии поиска:

  • Использование XPATH:

    driver.get("https://myip.ms/#a")
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "Login"))).click()
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@aria-describedby='uidialog']//input[@id='email' and @name='email']"))).send_keys("Коля Нарушев")
    
  • Примечание. Вам необходимо добавить следующий импорт:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
  • Снимок браузера:

myip

person DebanjanB    schedule 31.01.2021