with scraping libreria from example con python selenium selenium-webdriver functional-testing

scraping - Enviar control de teclas+clic en Selenium con enlaces de Python



selenium webdriver python (4)

Dos posibles soluciones:

abriendo una nueva pestaña

self.driver = webdriver.Firefox() self.driver.find_element_by_tag_name(''body'').send_keys(Keys.COMMAND + ''t'')

esta es la solución para MAC OSX. En otros casos, puede usar las Teclas estándar.CONTROL + ''t''

abriendo un nuevo webdriver

driver = webdriver.Firefox() #1st window second_driver = webdriver.Firefox() #2nd windows

Necesito abrir el enlace en una nueva pestaña usando Selenium.

Entonces, ¿es posible ejecutar ctrl + clic en el elemento en Selenium para abrirlo en una nueva pestaña?


Lo siguiente es trabajar para que abra el enlace en una nueva pestaña:

String link = Keys.chord(Keys.CONTROL,Keys.ENTER); driver.findElement(By.linkText("yourlinktext")).sendKeys(link);

El código anterior está en Java. usted puede convertir fácilmente a Python, supongo.

Por favor, pregunte si tiene alguna consulta.


A continuación se muestra lo que he intentado para Selenium WebDriver con enlace de Java y funciona para mí. Si desea abrir manualmente el Enlace en la Nueva Pestaña, puede hacerlo haciendo Contexto Haga clic en el Enlace y seleccione la opción ''Abrir en una pestaña nueva''. A continuación se muestra la implementación en Selenium web-driver con enlace Java.

Actions newTab= new Actions(driver); WebElement link = driver.findElement(By.xpath("//xpath of the element")); //Open the link in new window newTab.contextClick(link).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).build().perform();

El controlador web maneja una nueva pestaña de la misma manera que la de una nueva ventana. Tendrá que cambiar a una nueva pestaña abierta por su nombre de ventana.

driver.switchTo().window(windowName);

Puede realizar un seguimiento de los nombres de las ventanas que le ayudarán a navegar fácilmente entre las pestañas.


Use una ActionChain con key_down para presionar la tecla de control, y key_up para liberarla:

import time from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome() driver.get(''http://google.com'') element = driver.find_element_by_link_text(''About'') ActionChains(driver) / .key_down(Keys.CONTROL) / .click(element) / .key_up(Keys.CONTROL) / .perform() time.sleep(10) # Pause to allow you to inspect the browser. driver.quit()