前提・実現したいこと
以下のwebページからPythonとSeleniumを使って入力した英単語に応じた英文とその日本語訳を自動で取得しようとしています。
"https://tatoeba.org/eng/"
"Search sentences in"の横にある"Any Language"の部分がプルダウンリストになっており、そこに"English"と直接入力するか、もしくはプルダウンリストから"English"を自動で実行しようとしています。"translated to"も同様です。
発生している問題・エラーメッセージ
以下のソースコードを用いて該当web pageを開く-->プルダウンリストの要素取得までは問題なく実行できるのですが、その後に"プルダウンリストへの文字入力"、もしくは"要素の"選択に該当しそうな手段を色々調べて一通り試しましたが、いずれもエラーとなってしまいました。
*エラー
-
ElementNotInteractableException: Message: element not interactable
-
UnexpectedTagNameException: Message: Select only works on <select> elements, not on <div>
該当のソースコード
html
1from selenium import webdriver 2from selenium.webdriver.support.ui import Select 3 4# ブラウザを開く 5driver = webdriver.Chrome("chromewebdriverが入っているフォルダパス") 6 7# webpageを開く 8"url = "https://tatoeba.org/eng/" 9driver.get(url) 10 11# 翻訳前言語の選択(翻訳対象の言語に英語を選択する時の記載) 12# 該当するプルダウンリストのxpathを指定 13element = driver.find_element_by_xpath("//*[@id='new-search-bar']/fieldset[1]/div[1]") 14 15# エラーとなった処理 16element.send_keys("English") # ElementNotInteractableException: Message: element not interactableとなる処理 17 18# 選択する(value属性) 19Select(element).select_by_value("English") # UnexpectedTagNameException: Message: Select only works on <select> elements, not on <div>となる 20 21# 選択する(テキスト) 22# Select(element).select_by_visible_text("English") # UnexpectedTagNameException: Message: Select only works on <select> elements, not on <div>となる
他に試したこと
"UnexpectedTagNameException: Message: Select only works on <select> elements, not on <div>"に関して、javascript関連の操作により解決できるかもしれないと考え色々調べてみましたが、解決には至りませんでした。解決策をご教示いただけると助かります。
補足情報(FW/ツールのバージョンなど)
図の"language drop down ng-initの箇所から"English"を選択したいのですが、selenium上の操作で解決には至りませんでした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/14 11:51 編集