1. Cambio de ventana
- Obtenga el número total de identificadores de ventanas abiertas y devuelva una lista
handle = driver.window_handles
- Cambiar al último tirador de la ventana
driver.switch_to.window (maneja [-1])
- El código de operación es el siguiente:
. 1 Importación Tiempo 2 de selenio de importación la WebDriver . 3 de selenium.webdriver.support importación AS expected_conditions CE . 4 de selenium.webdriver.support.wait importación WebDriverWait . 5 de selenium.webdriver.common.by Importación Por 6. # Operación de conmutación de ventana . 7 Driver = la WebDriver .chrome () 8 # para acceder a una página web 9 driver.get ( " https://www.baidu.com " ) 10 driver.maximize_window () 11 driver.find_element_by_id ( ' kw ' ) .send_keys ( " clase de limón " ) 12 driver.find_element_by_id ( ' su ' ) .click () 13 WebDriverWait (driver, 30) .until (EC.visibility_of_element_located ((By.XPATH, ' // a [contiene (texto () " _ Baidu bar bar")] ' ))) 14 driver.find_element_by_xpath ( ' // a [contiene (texto () " _ Baidu bar bar")] ' ) .click () 15 de la time.sleep (0.5) # espera durante 0,5 segundos, haga clic en OK páginas están abiertas 16 # obtener un identificador para abrir el navegador, devuelve una lista de 17 las asas =driver.window_handles 18 print (manejadores) 19 driver.switch_to.window (maneja [-1 ]) 20 # 打印 当前 句柄 21 print (driver.current_window_handle) 22 # : Args: driver.switch_to.window (window_name) 23 # - window_name : El nombre o el identificador de la ventana a la que se cambiará. 24 WebDriverWait (driver, 20) .until (EC.visibility_of_element_located ((By.XPATH, " // div [@ id = 'signstar_wrapper'] // a [@ title = '签到'] " ))) # 等待 元素 出现 25 driver.find_element_by_xpath ( "// div [@ id = 'signstar_wrapper'] // a [@ title = '签到'] " ) .click () 26 WebDriverWait (driver, 20) .until (EC.visibility_of_element_located ((By.ID, " TANGRAM__PSP_11__footerULoginBtn " ))) 27 driver.find_element_by_id ( ' TANGRAM__PSP_11__footerULoginBtn ' ) .click () 28 driver.find_element_by_id ( ' TANGRAM__PSP_5__closeBtn ' ) .click ()
2. Determine si la nueva ventana se ha abierto para su uso
EC.new_window_is_opened (current_handles)
El código de operación es el siguiente:
. 1 Importación Tiempo 2 de selenio de importación la WebDriver . 3 de selenium.webdriver.support importación AS expected_conditions CE . 4 de selenium.webdriver.support.wait importación WebDriverWait . 5 de selenium.webdriver.common.by Importación Por 6. # Operación de conmutación de ventana . 7 Driver = la WebDriver .chrome () 8 # para acceder a una página web 9 driver.get ( " https://www.baidu.com " ) 10 driver.maximize_window () 11 driver.find_element_by_id ( ' kw ' ) .send_keys ( " clase de limón " ) 12 driver.find_element_by_id ( ' su ' ) .click () 13 WebDriverWait (driver, 30) .until (EC.visibility_of_element_located ((By.XPATH, ' // un [contiene (texto () , " _ Baidu bar bar ')] ' ))) 14 # asa total antes de ventana de adquisición abrir una nueva página 15 mangos = driver.window_handles 16 driver.find_element_by_xpath ( ' // a [ contiene (texto (), "吧 _ 百度 贴 吧")] ' ) .click () 17 time.sleep (0.5) #Espere 0,5 segundos, haga clic en las páginas OK están abiertos 18 # espera de una nueva página se abre 19 WebDriverWait (Conductor, 20 ) .hasta (EC.new_window_is_opened (las manijas)) 20 # obtener un identificador para abrir el navegador, devuelve una lista de 21 las manijas = Conductor .window_handles 22 es de impresión (asas) 23 es # conmuta a la nueva empuñadura 24 driver.switch_to.window (manijas [-1 ]) 25 # Imprimir mango 26 es de impresión (driver.current_window_handle) 27 # : los Args: driver.switch_to.window ( window_name) 28 # - window_name:. al oír el nombre o el tirador de ventana en la ventana para cambiar a 29WebDriverWait (driver, 20) .until (EC.visibility_of_element_located ((By.XPATH, " // div [@ id = 'signstar_wrapper'] // a [@ title = '签到'] " ))) # 等待 元素 出现 30 driver.find_element_by_xpath ( " // div [@ id = 'signstar_wrapper'] // a [@ title = '签到'] " ) .click () 31 WebDriverWait (driver, 20) .until (EC.visibility_of_element_located ((By. ID, " TANGRAM__PSP_11__footerULoginBtn " ))) 32 driver.find_element_by_id ( ' TANGRAM__PSP_11__footerULoginBtn ' ) .click () 33 driver.find_element_by_id ( 'TANGRAM__PSP_5__closeBtn ').hacer clic()