Python

Python Seleniumでフォームのテキストボックスclearができない時の対応

Python

私の作成していたSeleniumでのプログラムでフォームのテキストボックスの値をリセット(clear)してから入力するようにしていたのですが、サイト側の構成がかわったようでclearが効かなくなってしまったので、対応方法についてのメモとなります。

環境としてはchrome driverを使用していました。

今までのフォームテキストボックスclearの方法

普通にclearをおこなってから、要素を入力していてうまく動作していました。

driver.find_element_by_xpath("xpath/hogehoge").clear()
driver.find_element_by_xpath("xpath/hogehoge").send_keys("入力します")

変更後のフォームテキストボックスclearの方法

clearが効かなくなってしまったので、いったんCtrl+Aとdeleteキーを押して入力内容を空にするとうまく動作しました。

sendKeysではなくsend_keysです。

from selenium.webdriver.common.keys import Keys

driver.find_element_by_xpath("xpath/hogehoge").send_keys((Keys.CONTROL + "a"))
driver.find_element_by_xpath("xpath/hogehoge").send_keys(Keys.DELETE)
driver.find_element_by_xpath("xpath/hogehoge").send_keys("入力します")

あとは、よくわからないのですが、2回clearをしてもうまく動きました。ただし、原因が分からないので上の方法を使っています。

driver.find_element_by_xpath("xpath/hogehoge").clear()
driver.find_element_by_xpath("xpath/hogehoge").clear()
driver.find_element_by_xpath("xpath/hogehoge").send_keys("入力します")

まとめ

今回はclearを使う代わりに強制的にテキストを削除して対応いたしました。

原因はサイト側のデザイン変更などがあるようです。materialデザインだとうまく動かないだとか、firefoxだとうまく動かないことが多いみたいですね。

Pythonのオススメ勉強方法

私がオススメするPythonの効果的な学習方法は「Udemy(ユーデミー)」によるビデオ学習です。

「Udemy」は、オンライン学習の提供サイトです。学びたい人は多くある講座の中から受講したいコースを選択することができ、動画で学べるのが特徴です。

多くあるPythonのコースの中でもオススメするPythonのコースは以下となります!!

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

このコースでは合計で28.5時間のビデオ講座があって、それらを受講するだけで、Pythonの基礎から応用まで学ぶことができます。

私も購入して受講していますが、内容としては初心者の方から上級者まで対応する幅広い内容になっています。

下手な書籍を何冊か購入するより、この動画コースを最初からじっくりと受けることで総合的なスキルを習得することができるできます。おそらくこれ以上の教材はないと思いますので、絶対おすすめです。

ちなみに、Udemyでは頻繁にセール(1か月に2,3回程度)が開催されているので、セールのタイミングで購入すれば90%OFFになる講座もあるため、セールが開催されてからの購入をオススメします!

今回は以上となります。

コメント

タイトルとURLをコピーしました