Frank
Frank

Reputation: 21

Ruby/Watir select a choice from a drop down menu

Hello I am relatively new to QA automated web testing and I try to use SO as a last resort.

That being said I am having issues selecting a choice from a drop down menu in our web app.

Here is the following code:

<div id="edit-main-user-role-wrapper" class="form-item">
    <select id="edit-main-user-role" class="form-select my-dropdown ahah-processed" name="main[user_role]" style="display: none;"></select>
    <div class="newListSelected" style="position: static;">
        <span class="selectedTxt">

            Student

        </span>
        <ul class="newList" style="top: -136px; height: 136px; left: 0px; display: none;">
            <li>
                <a class="" href="JavaScript:void(0);"></a>
            </li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </div>
</div>

When I inspect the drop down icon with Firefox inspect element it directs me to this line in the code: span class="selectedTxt"

I have tried accessing the list by id, class, xpath, and css all to no avail.

Here are some of my past attempts:

@browser.div(:class => 'form-item').select_list(:text => 'Student').fire_event ("on click")

@browser.select_list(:xpath, menu).option(:text, option).click

Upvotes: 1

Views: 1920

Answers (3)

mcshakes
mcshakes

Reputation: 146

not sure if you're still looking for answers, but either of these worked for me:

  @browser.select_list(:id => "you_leaving_us").option(:text => "Other").select
@browser.select_list(:id => "you_leaving_us").option(:value => "8").select

Instead of li's, I had options. Hope it works

Upvotes: 1

Frank
Frank

Reputation: 21

This is what eventually worked for me:

@browser.span(:class, "selectedTxt").click   # to make the list visible
@browser.element(:xpath, "#{xpath}").click   # click on the specified xpath

I know this may not be the most elegant answer, but it works!

Upvotes: 1

titusfortner
titusfortner

Reputation: 4194

An element with a select tag should only be meaningful if there are elements with option tags nested inside it. Often these pages have a lot of extra javascript in them to give context.

For dropdowns that don't follow the select/option pattern, you want to click on the element that drops down the list, and then click on the element you want that becomes visible as a result.

Upvotes: 2

Related Questions