Est-il un moyen pour fermer un onglet dans WebDriver ou le Rapporteur?
Est-il un moyen physique de fermer un onglet via Rapporteur ou de WebDriver?
Je demande parce que je sais comment changer d'onglet par programme, mais elle n'apporte pas l'onglet actif au premier plan. Je ne peux pas toujours dire ce qui se passe dans mon E2E tests exécutés sur SauceLabs parce que quand j'ai regarder l'écran, il jette montre l'onglet que j'ai navigué loin de, pas celle qui est active.
Je suis aller sur ce mal?
it('should do something in the previous tab', function(done) {
browser.getAllWindowHandles().then(function (handles) {
browser.switchTo().window(handles[0]);
//do something
expect(something).toEqual(thisThing);
done();
});
});
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer ce qui suit:
Passer à la nouvelle ouverture de l'onglet. Fermer la fenêtre (dans ce cas, le nouvel onglet). Revenir à la première fenêtre.
close()
fermé l'onglet pour moi, quand j'ouvre une image. Cependant, vous ne savez pas encore!Tout d'abord, sélénium ne pas fournir une source fiable de croix-navigateur API pour travailler avec les onglets du navigateur. Une approche commune pour ouvrir ou fermer un onglet (bien que pas tout à fait fiable) est d'invoquer raccourcis de navigateur pour Chrome:
CTRL
/COMMAND
+T
CTRL
/COMMAND
+W
Au rapporteur, trouver le
body
élément et "envoyer clés" pour elle:Ou, à l'aide de
browser.actions()
:Aussi, pour ouvrir un nouvel onglet, il est intéressant de hack (introduit ici), qui, fondamentalement, injecte une nouvelle
a
élément dans la page et invoqueclick
événement de souris:Il est également
window.close()
fonction, mais il ne serait pas fermer l'onglet si il n'a pas été ouvert viawindow.open()
(référence). En d'autres termes, si c'est un onglet que vous ouvrez manuellement, vous pouvez utiliserwindow.open() -> window.close()
approche avec l'aide debrowser.executeScript()
.window.open()
savez-vous comment ouvrir une référence à un onglet existant qui a déjà été ouvert à l'aide dewindow.open()
? J'ai une extension chrome cours d'exécution dans le 2ème onglet pour capturer les en-têtes HTTP et je ne peux pas comprendre comment revenir à l'onglet de les vérifier quand quelque chose se brise.C# Version de Sakshi réponse:
Fermer tous les onglets, à l'exception du premier, et passer à la première page:
Prêter attention aux deux dernières lignes, ils sont nécessaires pour éviter de telles erreurs comme
OpenQA.Selenium.NoSuchWindowException: no such window: target window already closed
from unknown error: web view not found
Vous pouvez utiliser
driver.close
et puis de passer à l'onglet actif
driver.SwitchTo().Window(m_driver.WindowHandles.First());
ou de toute autre onglet disponibleJe suis l'aide de la commande ci-dessous pour fermer l'onglet en cours après l'ouverture du lien dans un nouvel onglet
Ensuite, vous pouvez passer à l'onglet dernier, par la commande: