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.
following are Screen shot of HTML code and UI:
Following are my HTML code:
<td class="codetable last-cell" headers="N224AA-4-2">
<div id="widget___o3id7" class="dijit dijitReset dijitInline dijitLeft codetable dijitTextBox dijitComboBox" lang="en-US" role="listbox" dir="ltr" widgetid="__o3id7" aria-expanded="false">
<div class="dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer" role="presentation" data-dojo-attach-point="_buttonNode, _popupStateNode" popupactive="true">
<input class="dijitReset dijitInputField dijitArrowButtonInner" type="text" role="presentation" readonly="readonly" tabindex="-1" value="▼ ">
</div>
<div class="dijitReset dijitValidationContainer">
<input class="dijitReset dijitInputField dijitValidationIcon dijitValidationInner" type="text" role="presentation" readonly="readonly" tabindex="-1" value="Χ ">
</div>
<div class="dijitReset dijitInputField dijitInputContainer">
<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">
<input type="hidden" name="__o3id7" value="SX1">
</div>
</div>
</td>
I populated test data in the excel sheet as below where "Female" is drop down value:
UserName password123 100000005 Elena Sawyerehde Female
Following are my 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 < 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);
}
}
}
As there is no Select tag in the code you pasted, using select
for clicking dropdown won't help.
As per your test script and Html code the id
value for the dropdown is different.
//*[@id='widget___o3id7']
- used in the xpath to select dropdown, where in the html code id = "__o3id7"
.
Try after changing them
Its better to share your UI to understand the scenario and come to a conclusion
Thanks for sharing the UI and HTML code.
driver.findElement(By.id("__o3id7")).click();
Thread.sleep(1500);
driver.findElement(By.xpath("//*[contains(text(),'Female')]")).click();
Replace your select
statement and try this codes. Lets hope this would click 'Female' from your drop down.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.