Python Seleniumを使用してテキストボックス(入力)に値を見つけて挿入するにはどうすればよいですか?


88

私は次のHTML構造を持っており、Seleniumを使用して次の値を入力しようとしています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)

この要素を取得して値を入力する方法?

回答:


151

あなたのページが「http://example.com」の下で利用可能であると仮定します

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

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

IDで要素を選択:

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

これで、ENTERを押すことをシミュレートできます。

inputElement.send_keys(Keys.ENTER)

または、送信できるフォームの場合:

inputElement.submit() 

3
ElementNotInteractableException:メッセージ:要素
SheshankS.18年

キーボードで到達できない
Sheshank S. 2018

3
相互作用する前に、要素が存在するのを待つ必要があります。input_element = WebDriverWait(driver、WAIT_TIME).until(EC.visibility_of_element_located((By.CSS_SELECTOR、 "#a1")))input_element.send_keys( "1")
ワイルドハンマー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.