NoSuchElementException в python селене - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь ввести данные для inputbox.i я также пытался использовать find_by_d / name и xpath. Но все еще получаю

Файл "C: \ Users \ 1024983 \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py ", строка 978, в find_element 'value': value}) ['value'] Файл" C: \ Users \ 1024983 \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py ", строка 321, в файле исполняемого файла self.error_handler.check_response (response) execute" C: \ Users \ 1024983 \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py ", строка 242, в check_response вызывает исключение_класса (сообщение, экран, стековая трассировка) selenium.common.exceptions. NoSuchElementException: Сообщение: такого элемента нет: Невозможно найти элемент: {"method": "css selector", "selector": "[name =" combobox-1023-inputEl "]"}

Используя имя

  your_input = driver.find_element_by_name("combobox-1023-inputEl")
  your_input.clear()
  your_input.send_keys("Coke")
  driver.find_element_by_name("combobox-1023-inputEl").send_keys(Keys.ENTER)
  time.sleep(2)

Используя идентификатор

driver.find_element(By.ID, "combobox-1023-inputEl").click()
driver.find_element(By.ID, "combobox-1023-inputEl").send_keys("Coke")

поле ввода

<input id="combobox-1023-inputEl" type="text" role="combobox" class="x-form-field x-form-required-field x-form-text" autocomplete="off" name="combobox-1023-inputEl" style="width: 100%;">

1 Ответ

0 голосов
/ 07 января 2020

Требуемый элемент является динамическим c элементом, поэтому для отправки последовательности символов с элементом, который вы должны вызвать WebDriverWait для element_to_be_clickable(), вы можете использовать либо из следующих Стратегий локаторов :

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

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.x-form-field.x-form-required-field.x-form-text[id^='combobox'][name$='inputEl']"))).send_keys("Coke")
    
  • Использование XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='x-form-field x-form-required-field x-form-text' and starts-with(@id,'combobox')][contains(@name,'inputEl')]"))).send_keys("Coke")
    
  • Примечание : необходимо добавить следующий импорт:

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

Ссылка

Подробное обсуждение можно найти в:

...