前提・実現したいこと
Pythonを使用してWEBページの操作を自動化したいと思っており、その中でinputに値を入力する場面があります。
今まではChromeの検証ツールを使用してフルパスを取得してコードに貼り付けを実施していましたが、ページごとにinputの数やフルパスが異なってしまうため困っています。
しかし、いずれもinputのclassが同じであるため、find_elements_by_class_nameでインプットボックスの全てをリストで取得して何番目のインプットに値を入れるかを指定することで解決したいと思っています。
発生している問題・エラーメッセージ
現在find_elements_by_class_nameでリストが取得できない問題が発生しています。
当該のhtmlコードは、以下の通りです。
実際はこのように連続して並んでいる訳ではありませんが、こんな感じでinputの要素が複数存在しています。
html
1<input tabindex="-1" inputmode="numeric" class="input-3bEGcMc9 with-end-slot-S5RrC8PC" value="50"> 2<input tabindex="-1" inputmode="numeric" class="input-3bEGcMc9 with-end-slot-S5RrC8PC" value="2020"> 3<input tabindex="-1" inputmode="numeric" class="input-3bEGcMc9 with-end-slot-S5RrC8PC" value="1"> 4<input tabindex="-1" inputmode="numeric" class="input-3bEGcMc9 with-end-slot-S5RrC8PC" value="1"> 5<input tabindex="-1" inputmode="numeric" class="input-3bEGcMc9 with-end-slot-S5RrC8PC" value="1"> 6
いずれも、classが"input-3bEGcMc9 with-end-slot-S5RrC8PC"ですので、
以下のようにしてこれらの要素を一括で取得したいと考えました。
Python
1list = 2driver.find_elements_by_class_name('input-3bEGcMc9 with-end-slot-S5RrC8PC')
これがうまくいけば、
Python
1driver.find_element_by_xpath(list[0]).send_keys(value)
のようにして、値をinputに入力したいと思っていました。
しかし、このリストをprintで表示すると、[]と出力されリストが取得できていませんでした。
試したこと
そこで、Chromeの検証ツールにて当該の'input-3bEGcMc9 with-end-slot-S5RrC8PC'というクラス名を検索したところ、ヒットしないということがわかりました。
しっかりとコードには表示されているのに検証ツールで検索しても出てこないので、この辺も関係しているかと思いますが、解決策がわかりません。
解決策がわかる方がいらっしゃいましたら、このような問題が発生する理由と解決策を教えていただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/24 02:22