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

selenium webdriver Java_How Store Dynamic Text and Recall it later time in script

我一度卡住了,我需要一些指导,如果有人建议我如何执行这些脚本,我将不胜感激。
好的,在我的应用程序中,我必须 select 员工国家/地区下拉列表、员工状态下拉列表和员工代码下拉列表。
在这里我能够 select 任何国家然后他们的状态和员工代码这是动态元素(我们可以创建新的或者我们有 select 现有代码并且我需要存储这些元素)每个员工代码包含 10员工资料。
例如,如果我的员工代码是 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

据我了解,您想检索下拉列表中所选选项的文本,以便稍后使用。因此,您可以添加下面的代码来检索当前选择的选项。

//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;它更可靠。