Как переключаться между вкладками, выполнять какие-то операции и возвращаться на родительскую вкладку? - PullRequest
0 голосов
/ 09 мая 2019

Как перейти на новую вкладку, выполнить какую-либо операцию на дочерней вкладке и вернуться на родительскую вкладку?

В приведенном ниже коде переход на новую вкладку, выполняющий действие.Но родительская вкладка (yahoo) получила тот же сеанс, что и в дочерней вкладке (gmail)

Вот мой код:


driver.get("http://www.yahoo.com");

ReadExcell.setExcelFile(Constant.filepath + Constant.fileName, "Sheet1");
System.out.println(driver.getTitle());
String parentwindow=driver.getWindowHandle();

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.open('http://www.gmail.com','_blank');");

Set<String> s1=driver.getWindowHandles();

System.out.println("windows count is " +s1.size());

for (String winHandle : driver.getWindowHandles())
{
    driver.switchTo().window(winHandle);

    String str=winHandle.toString();

    System.out.println("The tostring value is" +str);
    driver.get("http://www.gmail.com");
    String Email=ReadExcell.getCellData(10, 1);
    String Pwd=ReadExcell.getCellData(10, 2);
    GmailLogin.Emailid(driver).sendKeys(Email);
    GmailLogin.next(driver).click();
    GmailLogin.Password(driver).sendKeys(Pwd);
    GmailLogin.Pwdnext(driver).click();
    System.out.println(driver.getTitle());
    //System.out.println("Window count is" +winHandle());
}
driver.close();
driver.switchTo().window(parentwindow);

System.out.println(parentwindow);
System.out.println("Ater switching title is ="+driver.getTitle());

Есть ли другой способ назвать каждую вкладку и перейти ксоответствующей вкладке выполнить какое-либо действие и вернуться на родительскую вкладку?ваша помощь будет более полезной .... Примечание: я использую mac

1 Ответ

0 голосов
/ 09 мая 2019

Вы можете использовать этот метод:

public void switchToWindow(int index){
    Set<String> windows = driver.getWindowHandles();
    driver.switchTo().window((String) windows.toArray()[index]);
}

Использование:

switchToWindow(1); // Switch to new window
doSomething();
switchToWindow(0); // Switch back to original window
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...