我坚持一点,我需要一些指导,如果有人建议我如何执行这些脚本,那么我将非常感激。
在我的应用程序中确定我必须选择员工国家下拉列表,员工状态下拉列表和员工代码下拉列表
在这里我能够选择任何国家,然后他们的状态和员工代码是动态元素(我们可以创建新的或我们选择现有代码,我需要存储这些元素)每个员工代码包含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

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