ElementNotInteractableException: Сообщение: Элемент не может быть прокручен в представлении, используя GeckoDriver Firefox с Selenium WebDriver - PullRequest
1 голос
/ 08 января 2020

Как я могу исправить ошибку:

selenium.common.exceptions.ElementNotInteractableException: Message: Element <> could not be scrolled into view

ошибка при работе с Firefox через Selenium?

Ни один из советов с сайта мне не помог. Я перепробовал все решения, которые смог найти, в том числе через WebDriverWait и JS. Одно из решений дало:

selenium.common.exceptions.MoveTargetOutOfBoundsException: Message: (568, 1215) is out of bounds of viewport width (1283) and height (699)

Я попытался изменить размер окна браузера, что также не работало.

Мой код:

webdriverDir = "/Users/Admin/Desktop/MyVersion/geckodriver.exe"
home_url = 'https://appleid.apple.com/account/'
browser = webdriver.Firefox(executable_path=webdriverDir)
browser.get(home_url)
browser.find_element_by_css_selector("captcha-input").click()

Решение, которое выдает ошибку размера окна:

actions = ActionChains(browser)
wait = WebDriverWait(browser, 10)
element = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "captcha-input")))
actions.move_to_element(element).perform()
element.click()

Кстати, этот же код прекрасно работает в Chrome. Но это достаточно очевидно.

1 Ответ

1 голос
/ 08 января 2020

Чтобы отправить последовательность символов в поле <captcha-input>, вам нужно вызвать WebDriverWait для element_to_be_clickable(), и вы можете использовать любую из следующих Стратегий локатора :

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

    driver.get('https://appleid.apple.com/account#!&page=create')
    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.captcha-input input.generic-input-field"))).send_keys("JohnTit")
    
  • Использование XPATH:

    driver.get('https://appleid.apple.com/account#!&page=create')
    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//captcha-input//input[@class='generic-input-field   form-textbox form-textbox-text  ']"))).send_keys("JohnTit")
    
  • Примечание : необходимо добавить следующие операции импорта:

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

AppleID_CaptchaInput

...