前提・実現したいこと
send_keysを用いて、input要素の中身にテキストを追加したいと考えています。
発生している問題・エラーメッセージ
Selenium公式のコードを一部改変して、input要素を変更しようとしました。
Python
1from selenium import webdriver 2from selenium.webdriver.common.by import By 3driver = webdriver.Opera(executable_path="operadriver.exe") 4# Navigate to url 5driver.get("http://www.google.com") 6 7# Enter "webdriver" text and perform "ENTER" keyboard action 8driver.find_element(By.NAME, "q").send_keys("webdriver") 9
しかし、実際に実行すると、下のようなエラーが出ました。
AttributeError: 'dict' object has no attribute 'send_keys'
find_elementの結果は以下のようになっていました。
{'ELEMENT': '0.054388548027942685-1'}
試したこと
まず、dictionaryの型でsend_keysに渡したのが原因だと考え、jsonモジュールを用いてstrに変換しましたが、
AttributeError: 'str' object has no attribute 'send_keys'
というようなエラーが出ました。
また、OperaのWebdriverが原因と考え、ChromedriverやGeckodriverを使用するように変更しましたが、その場合はなぜか成功しました。
補足情報(FW/ツールのバージョンなど)
selenium公式
https://www.selenium.dev/ja/documentation/webdriver/keyboard/
operadriverのリンク
https://github.com/operasoftware/operachromiumdriver/releases
chromeやfirefoxのwebdriverをインストールする際に参考にしたサイト
https://qiita.com/hanzawak/items/2ab4d2a333d6be6ac760
あなたの回答
tips
プレビュー