Je travaille sur une page Web avec Selenium. Cliquer sur un lien ouvre une autre fenêtre et je souhaite transférer le contrôle vers cette fenêtre.
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.tagindex.com/html_tag/link/a_target.html')
driver.find_element_by_css_selector('[href="target_example.html"]').click()
driver.switch_to.window(driver.window_handles[1])
Cependant, ce code peut échouer avec ʻIndexError sans
driver.window_handles [1] ʻexisting: sob:
En utilisant WebDriverWait.until () jusqu'à ce qu'une autre fenêtre s'ouvre Tu peux attendre.
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Chrome()
driver.get('http://www.tagindex.com/html_tag/link/a_target.html')
driver.find_element_by_css_selector('[href="target_example.html"]').click()
WebDriverWait(driver, 3).until(lambda d: len(d.window_handles) > 1)
driver.switch_to.window(driver.window_handles[1])
Cela garantit que le contrôle peut être transféré vers une autre fenêtre: blush:
Recommended Posts