Olá galera!!!
Como abrir nova aba com selenium e continuar na mesma sessão de login?
Olá galera!!!
Como abrir nova aba com selenium e continuar na mesma sessão de login?
Olá, Marlon.
Em uma aplicação Web, o controle de sessão é feito do lado do servidor. Se você estiver em outra aba do mesmo navegador, você automaticamente estará na mesma sessão!
A questão então é como abrir uma nova aba com o Selenium.
Você pode enviar um CTRL + T assim:
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");
Para alternar entre as abas, você pode fazer:
ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs.get(0));
Olá Alexandre.
Eu usei esse código,
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");
.CONTROL, "t")
.CONTROL + t)
.CONTROL , t)
Porém não abriu a nova aba, tentei variações e tbm não foi.
Algumas dúvias: - qual a versão do Selenium? - qual navegador e versão? - qual sistema operacional?
windows 10 firefox quantum o Selenium é o 3.8
Olá, Marlon.
Testei várias possibilidades. Parece que o sendKeys(Keys.CONTROL +"t")
ou até mesmo o .sendKeys(Keys.chord(Keys.CONTROL, "t"))
não tem efeito.
A que funcionou usa classes do AWT, uma biblioteca Java para Desktop.
Bonito não é, mas funciona! hehe
WebDriver driver = new FirefoxDriver();
driver.get("https://wikipedia.org/");
driver.findElement(By.name("search")).sendKeys("Digitando na Wikipédia!");
try {
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_T);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_T);
} catch (AWTException ex) {
throw new WebDriverException("Erro ao digitar CTRL + T", ex);
}
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.numberOfWindowsToBe(2));
List<String> windowHandles = new ArrayList<>(driver.getWindowHandles());
driver.switchTo().window(windowHandles.get(1));
driver.get("https://google.com/");
driver.findElement(By.name("q")).sendKeys("Digitando no Google em outra aba!");
Olá Alexandre, vou pesquisar sobre essa biblioteca, e de antemão agradeço pela sua atenção na resolução do problema. Obrigadão cara. :)