Como abrir uma nova guia no navegador Firefox existente usando Selenium WebDriver (também conhecido como Selenium 2)?
selenium
firefox
selenium-webdriver
browser-tab
Bhakti Shah
fonte
fonte
Respostas:
O código abaixo abrirá o link em uma nova aba.
O código abaixo abrirá uma nova guia vazia.
fonte
window.open()
, pode esperar que funcione em muitas plataformas / navegadores.Apenas para qualquer pessoa que esteja procurando uma resposta em ligações Ruby / Python / C # (Selenium 2.33.0).
Observe que as chaves reais a serem enviadas dependem do seu sistema operacional, por exemplo, o Mac usa
COMMAND + t
, em vez deCONTROL + t
.Rubi
Pitão
C #
fonte
driver.switchTo().window(windowName);
acessar qualquer guia ou janela. Obviamente, você precisa manter o controle dos nomes das janelas normalmente para permitir a alternância entre eles.Por que não fazer isso
fonte
driver.ExecuteScript("window.open('about:blank','_blank');");
Para abrir uma nova guia usando JavascriptExecutor,
Irá controlar na guia de acordo com o índice:
Controle do motorista na guia principal:
fonte
driver.switchTo().window(tabs.get(1)); driver.get("https://www.stackoverflow.com"); Thread.sleep(2000); driver.switchTo().window(tabs.get(2)); driver.get("https://www.flipkart.com"); Thread.sleep(2000); driver.close(); driver.switchTo().window(tabs.get(1)); Thread.sleep(2000); driver.close(); driver.switchTo().window(tabs.get(0));
, Eu tentei isso, mas obtendo exceção de array fora do limite, Se você souber de alguma solução, por favor me avise.driver.switchTo().window(tabs.get(2));
, isso funciona bem,((JavascriptExecutor) driver).executeScript("window.open('https://www.stackoverflow.com','_blank');"); Thread.sleep(3000); ((JavascriptExecutor) driver).executeScript("window.open('https://www.flipkart.com','_blank');");
mas não terei nenhum controle para alternar para o Windows.Para abrir uma nova janela no Chrome Driver.
Para alternar entre as guias, leia aqui
fonte
Você pode usar o seguinte código usando Java com Selenium WebDriver:
Usando JavaScript:
Depois de abrir uma nova guia, é necessário alternar para essa guia:
fonte
Experimente isso para o navegador FireFox.
fonte
O código abaixo abrirá o link em uma nova janela
fonte
Quase todas as respostas aqui estão desatualizadas.
WebDriver agora tem suporte para abrir guias:
Irá abrir uma nova guia. Na verdade, abrir uma janela se tornou um caso fora do padrão:
A guia ou janela não será focalizada automaticamente. Para mudar para ele:
fonte
Para abrir uma nova guia no navegador Chrome existente usando Selenium WebDriver, você pode usar este código:
fonte
Tive problemas para abrir uma nova guia no Chrome por um tempo. Mesmo
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
não funcionou para mim.Descobri que não basta que o selênio tenha foco no driver, o Windows também tem que ter a janela na frente.
Minha solução foi invocar um alerta no cromo que traria a janela para frente e, em seguida, executaria o comando. Código de amostra:
fonte
Estou usando o Selenium 2.52.0 em Java e Firefox 44.0.2. Infelizmente, nenhuma das soluções acima funcionou para mim. O problema é que se eu chamar driver.getWindowHandles (), sempre recebo um único identificador. De alguma forma, isso faz sentido para mim, pois o Firefox é um processo único e cada guia não é um processo separado. Mas talvez eu esteja errado. De qualquer forma, tento escrever minha própria solução:
Usei a combinação Ctrl + t para abrir uma nova guia, Ctrl + w para fechá-la e, para voltar à guia original, usei Ctrl + 1 (a primeira guia). Sei que a minha solução não é perfeita ou mesmo boa e gostaria também de trocar com switchTo call do driver, mas como escrevi não foi possível porque tinha apenas um identificador. Talvez isso seja útil para alguém na mesma situação.
fonte
fonte
Como abrir uma nova guia usando Selenium WebDriver com Java para cromo?
O código acima desabilitará as primeiras extensões e uma nova guia da classe de robô será aberta.
fonte
Esta linha de código irá abrir uma nova guia do navegador usando selenium webdriver
fonte
*JAVA
Eu recomendo usar
JavascriptExecutor
:A seguir importação:
fonte
Mesmo exemplo para nodejs:
fonte
Como abrir uma nova, mas mais importante, como você faz as coisas nessa nova guia? O Webdriver não adiciona um novo WindowHandle para cada guia e só tem controle da primeira guia. Assim, após selecionar uma nova guia (Control + Tab Number), defina .DefaultContent () no driver para definir a guia visível como aquela em que você vai trabalhar.
Visual básico
fonte
Para abrir uma nova guia no navegador Firefox existente usando Selenium WebDriver
fonte
fonte
fonte
verifique este exemplo completo para entender como abrir várias guias e alternar entre elas e, no final, feche todas as guias
Este exemplo é dado por esta página da web
fonte
Devido a um bug em https://bugs.chromium.org/p/chromedriver/issues/detail?id=1465 , embora webdriver.switchTo realmente mude de guia, o foco é deixado na primeira guia. Você pode confirmar isso executando driver.get após switchWindow e ver se a segunda guia realmente vai para o novo URL e não para a guia original.
Uma solução temporária foi o que @ yardening2 sugeriu. Use js para abrir um alerta e, em seguida, use o webdriver para aceitá-lo.
fonte
Este código está funcionando para mim (selênio 3.8.1, chromedriver = 2.34.522940, cromo = 63.0):
fonte
Descrição : Como abrir uma nova aba usando Selenium WebDriver com Java?
Resposta : Após clicar em qualquer link, abra uma nova aba.
Se quisermos lidar com a guia aberta recentemente, precisamos lidar com a guia usando o comando .switchTo (). Window ().
Alterne para a guia específica, execute a operação e volte para a guia principal.
fonte
Selenium não suporta a abertura de novas abas, ele suporta apenas a abertura de novas janelas. Para todos os efeitos, uma nova janela é funcionalmente equivalente a uma nova guia.
Existem vários hacks para contornar o problema, mas eles vão causar outros problemas a longo prazo.
fonte
Se você deseja abrir a nova guia, você pode usar este
Se você deseja abrir o link da nova guia, você pode usar este
com JavascriptExecutor:
com ações:
fonte
fonte
Manipulando a janela do navegador usando o Selenium Webdriver:
fonte