Як знайти та вставити значення у текстове поле (введення) за допомогою Python Selenium?


84

У мене є така структура HTML, і я намагаюся використовувати селен для введення значення NUM:

<div class="MY_HEADING_A">
    <div class="TitleA">My title</div>
    <div class="Foobar"></div>
        <div class="PageFrame" area="W">                
             <span class="PageText">PAGE <input id="a1" type="txt" NUM="" />  of <span id="MAX"></span> </span>
</div>

Ось код, який я написав:

head = driver.find_element_by_class_name("MY_HEADING_A")
frame_elem = head.find_element_by_class_name("PageText")

# Following is a pseudo code. 
# Basically I need to enter a value of 1, 2, 3 etc in the textbox field (NUM) 
# and then hit RETURN key.
## txt  = frame_elem.find_element_by_name("NUM")
## txt.send_keys(Key.4"

Як отримати цей елемент і ввести значення?

Відповіді:


148

Припускаючи, що ваша сторінка доступна на " http://example.com "

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://example.com")

Виберіть елемент за ідентифікатором:

inputElement = driver.find_element_by_id("a1")
inputElement.send_keys('1')

Тепер ви можете імітувати натискання ENTER:

inputElement.send_keys(Keys.ENTER)

або якщо це форма, яку ви можете подати:

inputElement.submit() 

3
ElementNotInteractableException: Повідомлення: Element
Sheshank S.

недоступний за допомогою клавіатури
Sheshank S.

3
Вам слід почекати, поки елемент буде присутній до взаємодії. input_element = WebDriverWait (драйвер, WAIT_TIME). до (EC.visibility_of_element_located ((By.CSS_SELECTOR, "# a1"))) input_element.send_keys ("1")
Wildhammer
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.