Làm thế nào để xác định vị trí và chèn một giá trị trong hộp văn bản (đầu vào) bằng Python Selenium?


84

Tôi có cấu trúc HTML sau và tôi đang cố gắng sử dụng Selenium để nhập giá trị 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>

Đây là mã tôi đã viết:

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"

Làm cách nào để lấy phần tử này và nhập giá trị?

Câu trả lời:


147

Giả sử trang của bạn có sẵn trong " http://example.com "

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

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

Chọn phần tử theo id:

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

Bây giờ bạn có thể mô phỏng việc nhấn ENTER:

inputElement.send_keys(Keys.ENTER)

hoặc nếu đó là một biểu mẫu bạn có thể gửi:

inputElement.submit() 

3
ElementNotInteractableException: Message: Element
Sheshank S.

không thể truy cập bằng bàn phím
Sheshank S.

3
Bạn nên đợi phần tử hiện diện trước khi tương tác. input_element = WebDriverWait (trình điều khiển, WAIT_TIME) .until (EC.visibility_of_element_located ((By.CSS_SELECTOR, "# a1"))) input_element.send_keys ("1")
Wildhammer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.