Tres tipos de conmutación en la automatización web: conmutación de ventanas

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()

 

Supongo que te gusta

Origin www.cnblogs.com/wsk1988/p/12696810.html
Recomendado
Clasificación