¿Cómo cambiar entre diferentes ventanas del navegador Chrome abiertas por diferentes WebDriver usando Selenio en Python?

Busqué esta pregunta y encontré una idea utilizando driver.switch_to.window (), pero no funcionó como se esperaba:

from selenium import webdriver driver1=webdriver.Chrome("D:\Python\Files\chromedriver.exe") driver1.get('https://www.google.com') driver2=webdriver.Chrome("D:\Python\Files\chromedriver.exe") driver2.get('https://www.bing.com/') driver1.switch_to.window(driver1.current_window_handle) 

el código anterior abrirá primero una ventana de Chrome e irá a Google, luego abrirá otra ventana de Chrome e irá a Bing, luego

 driver1.switch_to.window(driver1.current_window_handle) 

Parece que no funcionó, la ventana que muestra Bing todavía se muestra en la parte superior de la ventana que muestra Google. ¿Alguien tiene alguna idea? Creo.

 driver1.switch_to.window(driver1.current_window_handle) 

puede tener algunos errores.

Como ha utilizado dos instancias de WebDriver como driver1 y driver2 respectivamente para abrir las URL https://www.google.com (por ejemplo, windowA) y https://www.bing.com/ (por ejemplo, windowB) vale la pena mencionar que La función switch_to.window() es un método WebDriver . Por lo tanto, driver1 solo puede controlar windowA y driver2 solo puede controlar windowB .

Para que Selenium interactúe con cualquiera de las ventanas de navegación , Selenium necesita atención . Por lo tanto, para recorrer las diferentes ventanas de navegación , puede cambiar el enfoque a la ventana de navegación diferente utilizando JavascriptExecutor de la siguiente manera:

 ((JavascriptExecutor) driver1).executeScript("window.focus();"); ((JavascriptExecutor) driver2).executeScript("window.focus();"); 

Creo que tienes un concepto diferente de “ventana” en driver.switch_to.window (). En el navegador Chrome, significa “pestaña”. No es otro navegador de Chrome o ventana de navegador como lo que intentas hacer en tu código.

Si switch_to.window () lo que realmente quieres, daré un ejemplo de cómo usarlo:

 driver=webdriver.Chrome("D:\Python\Files\chromedriver.exe") driver.get('https://www.google.com') # open a new tab with js driver.execute_script("window.open('https://www.bing.com')") driver.switch_to.window(driver.window_handles[-1]) # now your driver is pointed to the "tab" you just opened