Невозможно взаимодействовать с текстовым полем веб-сайта с помощью веб-драйвера selenium (с использованием Dynami c xpath). - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь заполнить поле ввода с именем Destination на веб-сайте, и я получаю сообщение об ошибке «элемент не взаимодействует». Я искал и обнаружил, что может быть временное или постоянное наложение, поэтому я попытался использовать wait (неявное и явное), но это не помогло.

** В Мозиле я получаю сообщение об ошибке: **

org.openqa.selenium.ElementNotInteractableException: элемент недоступен с клавиатуры

** И на chrome: ** org.openqa.selenium.ElementNotInteractableException: элемент не взаимодействует

Вот код:

    public void check() throws InterruptedException {
         System.setProperty("webdriver.chrome.driver", "D:\\Selenium\\chromedriver.exe");
        WebDriver  driver = new ChromeDriver();
          driver.get("https://www.phptravels.net/home"); //navigate to the particular url
          driver.manage().window().maximize();  // maximizes of the window 
            Thread.sleep(1000);
              driver.findElement(By.xpath("(//input[@type='text'][@class='select2-input'])[5]")).sendKeys("abc"); //search field


    } 

И да, я импортировал все предпосылки

1 Ответ

1 голос
/ 15 апреля 2020

Чтобы решить вашу проблему, вы можете использовать селен ожидания и цепочку действий. ElementNotInteractableException возникает из-за наложенных элементов, элемент не виден или не активируется.

wait = WebDriverWait(driver, 10)
driver.get("https://www.phptravels.net/home")
selectElement=wait.until(EC.element_to_be_clickable((By.XPATH, "//div[@id='s2id_autogen1']//input[@id='s2id_autogen2']")))
ActionChains(driver).move_to_element(selectElement).click().perform()
wait.until(EC.element_to_be_clickable((By.XPATH, "//div[@id='s2id_autogen1']//input[@id='s2id_autogen2']"))).send_keys("Enter your Text")

Примечание: , пожалуйста, добавьте ниже импорта в ваше решение

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

enter image description here

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