Comment ouvrir un nouvel onglet dans le navigateur Firefox existant à l'aide de Selenium WebDriver (alias Selenium 2)?
selenium
firefox
selenium-webdriver
browser-tab
Bhakti Shah
la source
la source
Réponses:
Le code ci-dessous ouvrira le lien dans le nouvel onglet.
Le code ci-dessous ouvrira un nouvel onglet vide.
la source
window.open()
, vous pouvez vous attendre à ce qu'il fonctionne sur de nombreuses plates-formes / navigateurs.Juste pour tous ceux qui recherchent une réponse dans les liaisons Ruby / Python / C # (Selenium 2.33.0).
Notez que les clés réelles à envoyer dépendent de votre système d'exploitation, par exemple, Mac utilise
COMMAND + t
, au lieu deCONTROL + t
.Rubis
Python
C #
la source
driver.switchTo().window(windowName);
d'accéder à n'importe quel onglet ou fenêtre. De toute évidence, vous devez garder une trace du ou des noms de fenêtre comme d'habitude pour permettre de basculer entre eux.Pourquoi ne pas faire ça
la source
driver.ExecuteScript("window.open('about:blank','_blank');");
Pour ouvrir un nouvel onglet à l'aide de JavascriptExecutor,
Contrôle sur l'onglet selon l'index:
Contrôle du pilote sur l'onglet principal:
la source
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));
, J'ai essayé cela mais en sortant le tableau de l'exception liée, si vous connaissez une solution, veuillez me le faire savoir.driver.switchTo().window(tabs.get(2));
, cela fonctionne bien((JavascriptExecutor) driver).executeScript("window.open('https://www.stackoverflow.com','_blank');"); Thread.sleep(3000); ((JavascriptExecutor) driver).executeScript("window.open('https://www.flipkart.com','_blank');");
mais je n'aurai aucun contrôle pour passer à Windows.Pour ouvrir une nouvelle fenêtre dans le pilote Chrome.
Pour basculer entre les onglets, lisez ici
la source
Vous pouvez utiliser le code suivant en utilisant Java avec Selenium WebDriver:
En utilisant JavaScript:
Après avoir ouvert un nouvel onglet, il doit passer à cet onglet:
la source
Essayez ceci pour le navigateur FireFox.
la source
Le code ci-dessous ouvrira le lien dans une nouvelle fenêtre
la source
Presque toutes les réponses ici sont obsolètes.
WebDriver prend désormais en charge l'ouverture des onglets:
Ouvre un nouvel onglet. Ouvrir une fenêtre est en fait devenu le cas non standard:
L'onglet ou la fenêtre ne sera pas automatiquement focalisé. Pour y accéder:
la source
Pour ouvrir un nouvel onglet dans le navigateur Chrome existant à l'aide de Selenium WebDriver, vous pouvez utiliser ce code:
la source
J'ai eu du mal à ouvrir un nouvel onglet dans Chrome pendant un moment. Même
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
n'a pas fonctionné pour moi.J'ai découvert qu'il ne suffit pas que le sélénium se concentre sur le pilote, Windows doit également avoir la fenêtre à l'avant.
Ma solution était d'appeler une alerte sur chrome qui ramènerait la fenêtre au premier plan, puis exécuterait la commande. exemple de code:
la source
J'utilise Selenium 2.52.0 dans Java et Firefox 44.0.2. Malheureusement, aucune des solutions ci-dessus n'a fonctionné pour moi. Le problème est que si j'appelle driver.getWindowHandles (), j'obtiens toujours une seule poignée. Cela a du sens pour moi car Firefox est un processus unique et chaque onglet n'est pas un processus distinct. Mais peut-être que je me trompe. Quoi qu'il en soit, j'essaye d'écrire ma propre solution:
J'ai utilisé la combinaison Ctrl + t pour ouvrir un nouvel onglet, Ctrl + w pour le fermer et pour revenir à l'onglet d'origine, j'ai utilisé Ctrl + 1 (le premier onglet). Je suis conscient que ma solution n'est ni parfaite ni même bonne et j'aimerais aussi passer avec le commutateur du conducteur pour appeler, mais comme je l'ai écrit, ce n'était pas possible car je n'avais qu'une seule poignée. Peut-être que cela sera utile à quelqu'un avec la même situation.
la source
la source
Comment ouvrir un nouvel onglet en utilisant Selenium WebDriver avec Java pour Chrome?
Le code ci-dessus désactivera les premières extensions et le nouvel onglet en utilisant la classe de robot s'ouvrira.
la source
Cette ligne de code ouvrira un nouvel onglet de navigateur à l'aide de sélénium webdriver
la source
*JAVA
Je recommande d'utiliser
JavascriptExecutor
:Après l'importation:
la source
Même exemple pour nodejs:
la source
Comment ouvrir un nouveau, mais plus important encore, comment faites-vous des choses dans ce nouvel onglet? Webdriver n'ajoute pas de nouveau WindowHandle pour chaque onglet et ne contrôle que le premier onglet. Ainsi, après avoir sélectionné un nouvel onglet (Contrôle + Numéro de l'onglet), définissez .DefaultContent () sur le pilote pour définir l'onglet visible comme celui sur lequel vous allez travailler.
Visual Basic
la source
Pour ouvrir un nouvel onglet dans le navigateur Firefox existant à l'aide de Selenium WebDriver
la source
la source
la source
consultez cet exemple complet pour comprendre comment ouvrir plusieurs onglets et basculer entre les onglets et à la fin fermer tous les onglets
Cet exemple est donné par cette page web
la source
En raison d'un bug dans https://bugs.chromium.org/p/chromedriver/issues/detail?id=1465 même si webdriver.switchTo change réellement d'onglet, le focus est laissé sur le premier onglet. Vous pouvez le confirmer en faisant un driver.get après le switchWindow et voir que le deuxième onglet va réellement vers la nouvelle URL et non vers l'onglet d'origine.
Pour l'instant, c'est ce que @ yardening2 a suggéré. Utilisez js pour ouvrir une alerte, puis utilisez Webdriver pour l'accepter.
la source
Ce code fonctionne pour moi (sélénium 3.8.1, chromedriver = 2.34.522940, chrome = 63.0):
la source
Question : Comment ouvrir un nouvel onglet à l'aide de Selenium WebDriver avec Java?
Réponse : Après avoir cliqué sur n'importe quel lien, ouvrez un nouvel onglet.
Si nous voulons gérer l'onglet nouvellement ouvert, nous devons gérer l'onglet en utilisant la commande .switchTo (). Window ().
Basculez vers un onglet particulier, puis effectuez l'opération et revenez à l'onglet parent.
la source
Selenium ne prend pas en charge l'ouverture de nouveaux onglets, il ne prend en charge que l'ouverture de nouvelles fenêtres. À toutes fins utiles, une nouvelle fenêtre est de toute façon fonctionnellement équivalente à un nouvel onglet.
Il existe divers hacks pour contourner le problème, mais ils vont vous causer d'autres problèmes à long terme.
la source
Si vous souhaitez ouvrir le nouvel onglet, vous pouvez utiliser ceci
Si vous souhaitez ouvrir le lien depuis le nouvel onglet, vous pouvez utiliser ceci
avec JavascriptExecutor:
avec des actions:
la source
la source
Gestion de la fenêtre du navigateur à l'aide de Selenium Webdriver:
la source