使用Selenium和Python定位,在文本框中输入值

cpp*_*ppb 58 python html-input form-submit python-2.7 selenium-webdriver

<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>
Run Code Online (Sandbox Code Playgroud)

我有上面的代码,我试图使用selenium输入NUM上面的值这是我写的代码:

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"
Run Code Online (Sandbox Code Playgroud)

如何获取此元素并输入值?

zer*_*323 103

假设您的页面位于" http://example.com "下

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

driver = webdriver.Firefox()
driver.get("http://example.com")
Run Code Online (Sandbox Code Playgroud)

按ID选择元素:

inputElement = driver.find_element_by_id("a1")
inputElement.send_keys('1')
Run Code Online (Sandbox Code Playgroud)

现在你可以模拟命中ENTER:

inputElement.send_keys(Keys.ENTER)
Run Code Online (Sandbox Code Playgroud)

或者如果是您可以提交的表格:

inputElement.submit() 
Run Code Online (Sandbox Code Playgroud)

  • 您应该在交互之前等待元素出现。input_element = WebDriverWait(driver, WAIT_TIME).until(EC.visibility_of_element_ located((By.CSS_SELECTOR, "#a1"))) input_element.send_keys("1") (3认同)
  • ElementNotInteractableException:消息:元素 (2认同)