selenium.common.exceptions.ElementNotInteractableException: Сообщение: элемент не взаимодействует с помощью chrome webdriver - PullRequest
0 голосов
/ 23 апреля 2020

Я пытался ввести значение в поле формы с помощью веб-драйвера в селене. И поверьте мне, я прошел через все решения в Stackoverflow. Но никто из них не работал для меня. Изучая селен, я написал небольшой фрагмент кода, чтобы понять, как он работает.

Итак, вот мой код

from selenium import webdriver

driver= webdriver.Chrome("E:\work\chromedriver_win32\chromedriver.exe")
driver.get('http://127.0.0.1:8000/contact_us/')
driver.find_element_by_id("name").send_keys("Alex")

, а мой html выглядит следующим образом это

<form method="post">
    {% csrf_token %}
    <div class="row">
      <div class="col-6" id="name">
        {{ form.name|as_crispy_field }}
      </div>
      <div class="col-6">
        {{ form.email|as_crispy_field }}
      </div>
    </div>
     {{ form.organisation|as_crispy_field }}
    <div class="row">
      <div class="col-6">
        {{ form.phone|as_crispy_field }}
      </div>
      <div class="col-6">
        {{ form.mobile|as_crispy_field }}
      </div>
    </div>
    {{ form.address1|as_crispy_field }}
     <div class="row">
      <div class="col-6">
        {{ form.suburb|as_crispy_field }}
      </div>
      <div class="col-6">
        {{ form.state|as_crispy_field }}
      </div>
    </div>
     <div class="row">
      <div class="col-6">
        {{ form.country|as_crispy_field }}
      </div>
      <div class="col-6">
        {{ form.pin|as_crispy_field }}
      </div>
    </div>
    <div class="row">
      <div class="col-6">
        {{ form.source|as_crispy_field }}
      </div>
      <div class="col-6">
        {{ form.permission|as_crispy_field }}
      </div>
    </div>
     <div class="row">
      <div class="col-4">
        {{ form.permission1|as_crispy_field }}
      </div>
      <div class="col-4">
        {{ form.permission2|as_crispy_field }}
      </div>
       <div class="col-4">
        {{ form.permission3|as_crispy_field }}
      </div>
    </div>
     {{ form.subject|as_crispy_field }}
     {{ form.message|as_crispy_field }}
    <input type="submit" class="btn btn-primary" value="Submit"/>
</form>

К вашему сведению, я также попытался драйвер неявно ждать. Даже это не сработало для меня. Я проверю код для того же здесь.

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome("E:\work\chromedriver_win32\chromedriver.exe")
driver.get('http://127.0.0.1:8000/contact_us/')
driver.find_element_by_id("name").click()
driver.implicitly_wait(10)
ActionChains(driver).send_keys("Testname") 

Я также пытался ждать Webdriver.

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

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome("E:\work\chromedriver_win32\chromedriver.exe")
driver.get('http://127.0.0.1:8000/contact_us/')
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "name"))).send_keys("TestName")

Весь код выше показывает ту же ошибку "selenium.common. exceptions.ElementNotInteractableException: Сообщение: элемент не взаимодействует "

Может кто-нибудь помочь с этим. Заранее спасибо

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