Ich arbeite mit Selen an einer Webseite. Durch Klicken auf einen Link wird ein weiteres Fenster geöffnet, und ich möchte die Kontrolle auf dieses Fenster übertragen.
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])
Dieser Code kann jedoch mit IndexError
ohne driver.window_handles [1]
existierend fehlschlagen: sob:
Verwenden Sie WebDriverWait.until (), bis ein anderes Fenster geöffnet wird Du kannst warten.
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])
Dadurch wird sichergestellt, dass die Steuerung auf ein anderes Fenster übertragen werden kann: erröten:
Recommended Posts