2017-01-13 6 views
0

セレンのpythonを使用してドロップダウンから項目を選択したいと思います。プロジェクトはreact.jsを使用します。 dropdown htmlがdivに表示されます。これはdiv要素の下にあるように私が特定の値を選択しようとすると、選択しないでSelenium Pythonを使用したドロップダウンから選択、フロントエンドapp - react.js

code inspect for dropdown

は、私は、エラーメッセージが表示されました。

エラーメッセージ:

selenium.common.exceptions.UnexpectedTagNameException:メッセージ:要素のみで動作します を選択し、DIV

にどのように私はこの問題を解決することができませんか?

+0

xpathまたはcssセレクタを使用 – thebadguy

答えて

1

Select classを使用して、selectoption要素を使用して実装されていないドロップダウンを操作することはできません。

この種のドロップダウンを「手動で」処理する必要があります - 一般的にはそれをクリックして開き、目的のドロップダウンアイテム/オプションを見つけてクリックします。例えば、あなたの簡潔なHTMLスニペットによって判断すると、あなたが試すことができますドロップダウンを開くために:

# open up the dropdown 
dropdown = driver.find_element_by_css_selector(".Select-control") 
# or dropdown = driver.find_element_by_css_selector(".Select-control .Select-input") 
dropdown.click() 

# TODO: select option 

を時々、単にドロップダウンを集中し、それを自動的に選択することになり、目的の項目/オプションのテキストを入力する - このような場合には、あなたが試すことができます:

from selenium.webdriver.common.action_chains import ActionChains 

actions = ActionChains(driver) 
actions.move_to_element(dropdown).send_keys("Desired option text").perform() 

そして、任意のアニメーションや時間遅延(例えば、サーバーからオプションを取得するには)がある場合は、可能なタイミングの問題を処理するためにExplicit Waitsを追加する必要があります。


これらは、すべての一般的なヒントです、私は仮定の下で動作していますし、何が上記のユースケースのために働くかどうかは確認する方法がありません。

+0

助けてくれてありがとう!できます – Madi

関連する問題