wsk1988

1、窗口切换

  • 获取打开的窗口句柄总数,返回的是一个列表

    handles=driver.window_handles

  • 切换到最新的窗口句柄

    driver.switch_to.window(handles[-1])

  • 操作代码如下:
 1 import time
 2 from selenium import webdriver
 3 from selenium.webdriver.support import expected_conditions as EC
 4 from selenium.webdriver.support.wait import WebDriverWait
 5 from selenium.webdriver.common.by import By
 6 # 窗口切换操作
 7 driver=webdriver.Chrome()
 8 # 访问一个网页
 9 driver.get("https://www.baidu.com")
10 driver.maximize_window()
11 driver.find_element_by_id(\'kw\').send_keys("柠檬班")
12 driver.find_element_by_id(\'su\').click()
13 WebDriverWait(driver,30).until(EC.visibility_of_element_located((By.XPATH,\'//a[contains(text(),"吧_百度贴吧")]\')))
14 driver.find_element_by_xpath(\'//a[contains(text(),"吧_百度贴吧")]\').click()
15 time.sleep(0.5)#等待0.5秒,确定点击的网页都打开
16 # 获得打开浏览器的句柄,返回的是列表
17 handles=driver.window_handles
18 print(handles)
19 driver.switch_to.window(handles[-1])
20 # 打印当前句柄
21 print(driver.current_window_handle)
22 # :Args:    driver.switch_to.window(window_name)
23 #          - window_name: The name or window handle of the window to switch to.
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、判断新的窗口是否已经打开使用 

  EC.new_window_is_opened(current_handles)

  操作代码如下:

  

 1 import time
 2 from selenium import webdriver
 3 from selenium.webdriver.support import expected_conditions as EC
 4 from selenium.webdriver.support.wait import WebDriverWait
 5 from selenium.webdriver.common.by import By
 6 # 窗口切换操作
 7 driver=webdriver.Chrome()
 8 # 访问一个网页
 9 driver.get("https://www.baidu.com")
10 driver.maximize_window()
11 driver.find_element_by_id(\'kw\').send_keys("柠檬班")
12 driver.find_element_by_id(\'su\').click()
13 WebDriverWait(driver,30).until(EC.visibility_of_element_located((By.XPATH,\'//a[contains(text(),"吧_百度贴吧")]\')))
14 # 获取打开新页面之前的窗口总的句柄
15 handles=driver.window_handles
16 driver.find_element_by_xpath(\'//a[contains(text(),"吧_百度贴吧")]\').click()
17 time.sleep(0.5)#等待0.5秒,确定点击的网页都打开
18 # 等待新页面打开
19 WebDriverWait(driver,20).until(EC.new_window_is_opened(handles))
20 # 获得打开浏览器的句柄,返回的是列表
21 handles=driver.window_handles
22 print(handles)
23 # 切换到新的句柄
24 driver.switch_to.window(handles[-1])
25 # 打印当前句柄
26 print(driver.current_window_handle)
27 # :Args:    driver.switch_to.window(window_name)
28 #          - window_name: The name or window handle of the window to switch to.
29 WebDriverWait(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\').click()

 

分类:

技术点:

相关文章:

  • 2021-12-01
  • 2021-09-14
  • 2021-10-18
  • 2021-05-06
  • 2021-10-16
  • 2021-11-19
  • 2021-06-11
  • 2021-10-12
猜你喜欢
  • 2021-10-16
  • 2021-05-03
  • 2021-12-05
  • 2021-12-05
  • 2021-04-18
相关资源
相似解决方案