0

この質問は繰り返しのように聞こえますが、ここで見つけた解決策を試しましたが、これまでのところうまくいきませんでした。

次の質問からソリューションを実装します。

https://stackoverflow.com/questions/7489917/using-selenium-2-and-firefox-how-do-you-select-a-dropdown-selection Selenium WebDriver とドロップダウン ボックス

Ruby のメソッドのリファレンス: http://selenium.googlecode.com/svn/trunk/docs/api/rb/index.html#selenium-webdriver

私はウェブサイトをテストするためにキュウリでセレンを使用しています.私はIE 8で作業しています.

chan_text = @driver.find_element(:css,'select#check-list option').text
select_list = @driver.find_element(:css,'select#check-list')
dropdown = Selenium::WebDriver::Support::Select.new(select_list)
dropdown.select_by(:text, chan_text)

ソースは次のようになります。

<select id="check_list" multiple="">
<option selected="" value="81" label="MILK">MILK</option>
<option value="82" label="CHEESE">CHEESE</option>
<option value="83" label="DOUGHNUTS">DOUGHNUTS</option>
</select>

オプションを選択すると、ページが更新されます。これはまったく発生していません。メニューは開いたままです。必要に応じて詳細情報をリクエストしてください。この質問が本当に重複する場合は削除します。

4

2 に答える 2

1

これが私が見つけたより良いオプションです:

#Select the dropdown button 
dropdown_list = driver.find_element(:id, 'check_list')

#Get all the options from the dropdown
options = dropdown_list.find_elements(tag_name: 'option')

#Find the dropdown value by text
options.each { |option| option.click if option.text == 'CHEESE' }
于 2016-03-10T04:10:08.083 に答える
1

これを行うと何が得られますか?

chan_text = @driver.find_element(:css,'select#check-list option').text
puts chan_text

私の賭けは、あなたが探しているものではありません.

しかし、これを行うと -

chan_text = @driver.find_element(:css,'select#check-list option:nth-child(2)').text
puts chan_text #"CHEESE" is what will be returned

その理由は、find_element (chan_text 用) のセレクターであり、すべてのオプション値を返します。したがって:nth-child(n)、css セレクターに追加すると、特に関心のあるオプションを選択するのに役立ちます。

于 2013-06-26T16:52:07.883 に答える