Selenium Web driver select data from drop down by reading drop down value from excel sheet
<p>I am trying to select drop down value by reading drop down value from excel. I tried following code however, it is not selecting value as per data mentioned in the excel sheet. For me all data are populating correctly in the respective field except Gender drop down.</p>

<p>following are Screen shot of HTML code and UI:</p>

<p><a href="https://i.stack.imgur.com/q65N0.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/q65N0.png" alt="UI Image"></a></p>

<p><a href="https://i.stack.imgur.com/H5Wte.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/H5Wte.png" alt="Xpath Information"></a></p>

<p><a href="https://i.stack.imgur.com/kY8Jt.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/kY8Jt.png" alt="HTML Code"></a></p>

<p>Following are my HTML code:</p>

<pre><code>&lt;td class="codetable last-cell" headers="N224AA-4-2"&gt;
&lt;div id="widget___o3id7" class="dijit dijitReset dijitInline dijitLeft codetable dijitTextBox dijitComboBox" lang="en-US" role="listbox" dir="ltr" widgetid="__o3id7" aria-expanded="false"&gt;
&lt;div class="dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer" role="presentation" data-dojo-attach-point="_buttonNode, _popupStateNode" popupactive="true"&gt;
&lt;input class="dijitReset dijitInputField dijitArrowButtonInner" type="text" role="presentation" readonly="readonly" tabindex="-1" value="▼ "&gt;
&lt;/div&gt;
&lt;div class="dijitReset dijitValidationContainer"&gt;
&lt;input class="dijitReset dijitInputField dijitValidationIcon dijitValidationInner" type="text" role="presentation" readonly="readonly" tabindex="-1" value="Χ "&gt;
&lt;/div&gt;
&lt;div class="dijitReset dijitInputField dijitInputContainer"&gt;
&lt;input id="__o3id7" class="dijitReset dijitInputInner" type="text" aria-haspopup="true" role="textbox" data-dojo-attach-point="textbox,focusNode" autocomplete="off" aria-required="true" tabindex="0" title="Gender Mandatory" size="1" value="Male" aria-owns="__o3id7_popup" aria-activedescendant="__o3id7_popup1"&gt;
&lt;input type="hidden" name="__o3id7" value="SX1"&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
</code></pre>

<p>I populated test data in the excel sheet as below where "Female" is drop down value:</p>

<pre><code>UserName password123    100000005   Elena   Sawyerehde  Female
</code></pre>

<p>Following are my code:</p>

<pre><code>package com.access;

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;
import org.testng.Assert;
import org.testng.annotations.*;
import java.io.FileInputStream;
import jxl.Sheet;
import jxl.Workbook;

public class Registration {

    static WebDriver driver;

      @BeforeMethod
      public void setUp() throws Exception {
        System.setProperty("webdriver.chrome.driver", "C:\\Directory\\chromedriver.exe");
        driver = new ChromeDriver();
        driver.manage().window().maximize();

        Thread.sleep(2000);
      }

      @Test 
      public void TestCase1() throws Exception {
          FileInputStream fi=new FileInputStream("C:\\File\\Book2.xls");
          Workbook w=Workbook.getWorkbook(fi);
          Sheet s=w.getSheet(0);
       driver.get("https://example.com");

        try
        {
        for (int i = 0; i &lt; s.getRows(); i++)
        {
        //Read data from excel sheet
            String s1 = s.getCell(0,i).getContents();
            String s2 = s.getCell(1,i).getContents();
            String s3 = s.getCell(2,i).getContents();
            String s4 = s.getCell(3,i).getContents();
            String s5 = s.getCell(4,i).getContents();
            String s6 = s.getCell(5,i).getContents();

            driver.findElement(By.xpath("html/body/div[2]/form/input[1]")).sendKeys(s1);
            Thread.sleep(2000);
            driver.findElement(By.xpath("html/body/div[2]/form/input[2]")).sendKeys(s2);
            Thread.sleep(2000);
            driver.findElement(By.xpath("html/body/div[2]/a/span/span/span")).click();
            Thread.sleep(2000);
            Assert.assertEquals("Testing Hub", driver.findElement(By.xpath("//*[@id='app-banner']/div[1]/div/h2")).getText());
            Thread.sleep(2000);
            driver.findElement(By.xpath("html/body/div[1]/div[4]/div[1]/div[4]/div/div[2]/div/div/div/span[1]")).click();
            Thread.sleep(2000);         
            driver.findElement(By.xpath("html/body/div[1]/div[4]/div[3]/div[2]/div[3]/div[3]/div[1]/div/div[2]/div/div/div/span/span/span/span[2]")).click();
            Thread.sleep(1000);         
            driver.findElement(By.xpath("html/body/div[4]/table/tbody/tr[2]/td[2]")).click();
            Thread.sleep(2000);     
            driver.switchTo().frame("iframe-curam_ModalDialog_0");
            Thread.sleep(1000);
            driver.findElement(By.xpath("//*[@id='__o3id0']")).sendKeys(s3);
            Thread.sleep(1000);
            driver.findElement(By.xpath("html/body/div[3]/form/div/div[5]/a[1]/span/span/span")).click();
            Thread.sleep(1000);
            Assert.assertEquals("There are no matching items based on the Search Criteria entered.", driver.findElement(By.xpath("html/body/div[3]/div/ul/li/div")).getText());
            Thread.sleep(1000);         
            driver.findElement(By.xpath("html/body/div[4]/div[2]/a/span/span/span")).click();
            Thread.sleep(2000);         
            driver.findElement(By.xpath("html/body/div[3]/form/div/div[2]/div/table/tbody/tr[1]/td[1]/input")).sendKeys(s4);
            Thread.sleep(1000);         
            driver.findElement(By.xpath("html/body/div[3]/form/div/div[2]/div/table/tbody/tr[2]/td[1]/input")).sendKeys(s5);
            Thread.sleep(1000);
            new Select(driver.findElement(By.id("___o3id7"))).selectByValue(s6);
            Thread.sleep(2000);

            }    
            }
            catch(Exception e)
            {
            System.out.println(e);

            }
            }
}
</code></pre>