質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

3回答

6562閲覧

seleniumによる検索テキストボックスの削除と入力について

help-man

総合スコア58

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2021/09/13 07:22

pythonのseleniumで検索エンジンで数字を入力する際に元々テキストボックスに入っている数字を消して新たに自分が入力したい数字を入力したいのですができません
やり方の方法を検索してその方法でやっているつもりなのですがどこか間違っていますか?
何卒ご教授よろしくお願いいたします

【実際のコード】
numbers = driver.find_element_by_name('lower').clear()
numbers.send_keys('123')

エラー:selenium.common.exceptions.InvalidElementStateException: Message: invalid element state: Element is not currently interactable and may not be manipulated

【HTML】

<div class="options"><input maxlength="16" type="text" name="lower" value="-3513.61">&nbsp;以上&nbsp;<input maxlength="16" type="text" name="upper" value="31471.00">&nbsp;以下</div>

【参考にしたサイト】
https://www.seleniumqref.com/api/python/element_set/Python_clear.html

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

明らかに間違っている部分としては、
numbers = driver.find_element_by_name('lower').clear()では、numberにはclear()の返り値であるNoneが代入されます。で、'NoneType' object has no attribute 'send_keys'というエラーになるはず。
正しくは、

Python

1numbers = driver.find_element_by_name('lower') 2numbers.clear() 3numbers.send_keys('123')

が、エラーメッセージからして、そこに行く前のclear()の段階でエラーですね。
おそらく、
driver.find_element_by_name('lower').is_displayed()(表示されているか?) か
driver.find_element_by_name('lower').is_enabled()disableでないか?)
Falseなので操作不能なのでしょう。
対策としては、何故そうなっているのかを突き止めることからです。

投稿2021/09/13 12:40

otn

総合スコア86318

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

help-man

2021/09/14 06:48 編集

コメントありがとうございます いつもお世話になっております 言われたとおりに試しに print(driver.find_element_by_name('lower').is_displayed())とやってみたらTrueが返ってきました なので numbers = driver.find_element_by_name('lower') numbers.clear() numbers.send_keys('123') とやってみたら 同じエラーの『selenium.common.exceptions.InvalidElementStateException: Message: invalid element state: Element is not currently interactable and may not be manipulated』 でした 次にデバッグをしてみたらnumbers.clear()が原因らしいです ちなみにエラーは『InvalidElementStateException Message: invalid element state: Element is not currently interactable and may not be manipulated』でした
otn

2021/09/14 06:31

そもそも最初の > selenium.common.exceptions.InvalidElementStateException: Message: invalid element state: Element is not currently interactable and may not be manipulated というエラーはどの行についてなのでしょうか?
guest

0

自己解決

自己解決できました
どうやら.clear()は効かないらしく、.send_keys(Keys.CONTROL + 'a', Keys.BACKSPACE) でやったら全削除ができました
なので
numbers = driver.find_element_by_xpath('〇〇〇')
numbers.send_keys(Keys.CONTROL + 'a', Keys.BACKSPACE) #BackSpaceで全文字消去
numbers.send_keys('123')
でできました
お騒がせ致しました

参考サイトURL:https://www.tutorialspoint.com/how-do-i-send-a-delete-keystroke-to-a-text-field-using-selenium-with-python

投稿2021/09/16 07:50

help-man

総合スコア58

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

通りがかりです。pythonには慣れてないのですが、
numbers = driver.find_element_by_name('lower').clear()
これって、clearを代入してることになりませんか?
driver.find_element_by_name('lower').clear()  で、inputboxをクリアできませんか
driver.find_element_by_name('lower').send_keys("123") で代入できると思います

numbers.send_keys('123') これはどちらでも

外していたら申し訳ないです。

投稿2021/09/13 10:09

bugsy

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

help-man

2021/09/13 10:14

試してみましたが結果は「selenium.common.exceptions.InvalidElementStateException: Message: invalid element state: Element is not currently interactable and may not be manipulated」でした コメントありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問