0
votes

I am a real beginner with Selenium and JUnit and trying to validate the functionality of a dropdown list by choosing one item. Selenium is recording it using the dynamic id, so when trying to rerun it, it cannot find the element. I tried a few approaches in my JUnit code, but I can't seem to get it right.

It's a "View" dropdown list, where the first item is "Themes"

This is my html:

<div id="yui_3_16_0_1_1406046071286_1213" class="commontasks shaded">
  <div id="pagetoolbar" class="hasnomsg hideReplyGroup">
    <div id="match-messagelist-sizing">
       <span id="btn-ml-cbox" class="btn btn-hdr cbox collapse-end-space" tabindex="0"   aria-label="Select or deselect all messages [Ctrl+A]">
       <span id="btn-select-dd" class="btn neoFocusable enabled" aria-label="Select or deselect categorized messages" aria-haspopup="true" role="button" data-action="select-dd">
       <span id="btn-conv-view" class="btn btn-absolute btn-view-dd" data-action="menu" title="More view options" aria-haspopup="true" role="button">
         <span id="yui_3_16_0_1_1406046071286_1215" class="icon-text">View</span>
         <b id="yui_3_16_0_1_1406046071286_1212" class="icon icon-chevron-down"></b>
       </span>
   </div>
</div>
  1. I tried using the following code to open the list: driver.findElement(By.xpath("/html/body/div[7]/div[3]/div[4]/div[2]/div1/div[2]/div/div/span[3]/b")).click(); But when I'm running the test from Eclipse, it completes successfully, but I do not see the list opening. Is there a way to continue from here and choose an item from the list?

  2. I tried using the Select option: Select select = new Select(driver.findElement(By.xpath("/html/body/div[6]/div[3]/div[4]/div[2]/div1/div[2]/div/div/span[3]/span[text() = 'View']"))); But recieved the following error: org.openqa.selenium.support.ui.UnexpectedTagNameException: Element should have been "select" but was "span"

I would really appreciate your comments.

Thanks

1

1 Answers

0
votes

Assuming that id (yiu-*) are dynamic, I am using CSS Selector. Try the below code:

driver.findElement(By.cssSelector("div#pagetoolbar b.icon-chevron-down")).click();

for your second question, you can use only SELECT element of HTML for the Select class. As the error clearly says you are trying to use it on a SPAN element.