selenium webdriver Java_How存储动态文本并稍后在脚本中调用它

时间:2015-02-11 05:19:08

标签: selenium-webdriver

我坚持一点,我需要一些指导,如果有人建议我如何执行这些脚本,那么我将非常感激。
在我的应用程序中确定我必须选择员工国家下拉列表,员工状态下拉列表和员工代码下拉列表 在这里我能够选择任何国家,然后他们的状态和员工代码是动态元素(我们可以创建新的或我们选择现有代码,我需要存储这些元素)每个员工代码包含10个员工档案。
for例如,如果我的员工代码是E001(它将只包含英国员工档案)
希望你明白我的意思所以在下一页我必须点击这些员工代码超链接(实际上我想要我的脚本应该回想起存储的动态元素)。

以下是现在使用的示例脚本



jxl.Sheet Sheet1 = wBook.getSheet(1);
String EmployeeCountry = Sheet1.getCell(2, 1).getContents();
new Select (driver.findElement(By.id("Fact-Communities-LIVE"))).selectByVisibleText(EmployeeCountry);
Thread.sleep(2000);
String EmployeeState = Sheet1.getCell(2, 2).getContents();
new Select (driver.findElement(By.id("Fact-Products-LIVE"))).selectByVisibleText(EmployeeState);
	
//selecting the dropdownlisted name by using INDEX 
new Select (driver.findElement(By.cssSelector("#Fact-Camp_DropDown-LIVE"))).selectByIndex(1);


//Now how to store it and Retrive it Later ?
//after this i have to use these employee code here
//Following is Hardcoded script when we knew what employee code we have selected 
WebElement element7 = (new WebDriverWait(driver, 20)).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@id='opportunitiesDetails']//a[text()='EMP001']")));
			        driver.findElement(By.xpath("//div[@id='opportunitiesDetails']//a[text()='EMP001']")).click();


//but how to do for dynamic element




1 个答案:

答案 0 :(得分:0)

根据我的理解,您想要在下拉列表中检索所选选项的文本,以便稍后使用。因此,您可以添加以下代码以检索当前选定的选项。

//selecting the dropdownlisted name by using INDEX 
new Select (driver.findElement(By.cssSelector("#Fact-Camp_DropDown-LIVE"))).selectByIndex(1);

//Retrieves the currently selected option from the dropdown.
String Option_Selected = new Select(driver.findElement(By.xpath("(#Fact-Camp_DropDown-LIVE"))).getFirstSelectedOption().getText();

现在,您可以在后面的代码中使用它,如下所示:

WebElement element7 = (new WebDriverWait(driver, 20)).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@id='opportunitiesDetails']//a[text()='"+Option_Selected+"']")));
driver.findElement(By.xpath("//div[@id='opportunitiesDetails']//a[text()='"+Option_Selected+"']")).click();

此外,我还建议您使用 elementToBeVisible 方法而不是 elementToBeClickable ;它更可靠。