Я делаю следующие шаги в моем тестовом примере 1.Откройте главную страницу 2.Нажмите на одну ссылку, которая открывает новую страницу (вкладка) 3. Данные запроса (Нажмите кнопку «Запрос». Страница перезагружается) 4. Выберите один выпадающий список - «запрос», заполните текстовые данные и нажмите «Сохранить». 5.Закройте эту вкладку 6.На главной странице снова нажмите на ссылку, чтобы открыть эту страницу (вкладку) 7. Запрос некоторых данных (нажмите на кнопку «Запрос». Страница перезагрузится) 8. Выберите один выпадающий список - «ответ», заполните некоторые данные и нажмите «Сохранить».
Я получаю ошибку на шаге 8 при выборе раскрывающегося списка "Ответ". Тот же выпадающий при выборе «запрос» работал нормально. Также я могу выбрать «ответ», если открою страницу только один раз (исключая шаги - 3,4,5). Что здесь происходит? Я новичок в селене и попробовал почти все решения, доступные для устаревшего исключения. Тот же код работает в моей системе коллег без проблем. (та же самая версия chrome) Я также попытался дать время сна. Кроме того, во время выполнения он расширяет раскрывающийся список, и я мог видеть «ответ», но все же он не выбирает ответ.
Это мои фрагменты кода. Использование браузера chrome.
************************ Testcase ******************************
public class TC_004 extends BaseClass{
@Test
public void TNRangeConfirm() throws InterruptedException{
driver.get(baseURL);
LoginUS login=new LoginUS();
login.loginTest();
Thread.sleep(10000);
logger.info("Starting Multiline Creation");
PageActions icp=new PageActions();
logger.info("Sending request");
icp.PortReq();
logger.info("Sending response");
Thread.sleep(5000);
icp.PortRes();
LogoutUS logout=new LogoutUS();
logger.info("Logging out");
logout.logoutTest();
}
}
*********************************************************
**********************Reusable Action***********************
public class PageActions extends BaseClass{
String currentWindow = driver.getWindowHandle();
MainMenuPage mmp=new MainMenuPage(driver);
ActionsPage ipdP=new ActionsPage(driver);
public void PortReq() throws InterruptedException{
System.out.println(" Creation Multi Line : Started");
System.out.println(" Click on Actions page");
mmp.clickPRRADM(); // It expands the link
Thread.sleep(1000);
mmp.clickIPD(); // Opens the page
Thread.sleep(60000);
//Switch tab
//ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
//driver.switchTo().window(tabs.get(1));
for (String handle : driver.getWindowHandles()) {
if (!handle.equals(currentWindow)) {
driver.switchTo().window(handle);
}
}
//Read Data from Excel
//objExcelFile
MngTestData mtd=new MngTestData();
try {
TN1 = mtd.readExcel(filePath, fileName, sheetName, "New_TN");
TN2 = mtd.readExcel(filePath, fileName, sheetName, "TN1");
TN3 = mtd.readExcel(filePath, fileName, sheetName, "TN2");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("TN : "+TN);
ipdP.selectPortType("Request");
ipdP.setPortNo(TN);
ipdP.selectOwner(TN1);
Thread.sleep(10000);
ipdP.clickQuery();
Thread.sleep(10000);
Boolean isPresent = driver.findElements(By.id("INFO_MSD_ID_0")).size() >0 ;
if((isPresent) && (ipdP.isExist("NO RECORDS FOUND"))){ */
System.out.println("Multi Line Creation Started");
ipdP.selectPortAction("Request");
Thread.sleep(10000);
ipdP.selectNNSP(TN1);
Thread.sleep(6000);
ipdP.selectONSP(TN2);
Thread.sleep(10000);
ipdP.clickSave();
Thread.sleep(30000);
driver.close();
driver.switchTo().window(currentWindow);
Thread.sleep(10000);
}
public void PortRes() throws InterruptedException{
String currentWindow = driver.getWindowHandle();
mmp.clickPRRADM();
Thread.sleep(1000);
mmp.clickPRRADM();
Thread.sleep(5000);
mmp.clickIPD(); // opens page
Thread.sleep(30000);
//Read Data from Excel
//objExcelFile
MngTestData mtd=new MngTestData();
try {
TN = mtd.readExcel(filePath, fileName, sheetName, "New_TN");
onsp = mtd.readExcel(filePath, fileName, sheetName,"Old_Network");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//Create Response
System.out.println("Response Started");
//Switch tab
ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs.get(1));
waitUntil wt= new waitUntil();
boolean isFound=wt.waitForElement(driver, By.id("select-REC_TYPE_ID"));
System.out.println("isFound"+isFound);
wt.waitTillDropdownElementLoads(By.id("select-REC_TYPE_ID"), "Request");
wt.waitTillListOfElementsVisibility(By.id("QRY_NUM_ID"));
Thread.sleep(40000);
ipdP.setPortNo(TN);
wt.waitTillDropdownElementLoads(By.id("select-QRY_OWNER_ID"), owner);
ipdP.selectOwner(owner);
Thread.sleep(10000);
ipdP.clickQuery();
Thread.sleep(40000);
ipdP.selectMultiPortAction("Response"); // My code fails at this point stale excecption.
Thread.sleep(10000);
driver.close();
driver.switchTo().window(currentWindow);
Thread.sleep(10000);
}
}
************************************************************************************
***********************************PageObject class ********************************
public class ActionsPage {
WebDriver ldriver;
public ActionsPage (WebDriver rdriver){
ldriver=rdriver;
PageFactory.initElements(rdriver,this);
}
@FindBy(id="select-DETAILS_ACTION_ID")
@CacheLookup
WebElement selAction;
public void selectPortAction(String action){
Select portAction = new Select(selAction);
portAction.selectByValue(action);
}
******************************************************************************************