selenium学习----多窗口切换

之前在学习的过程中了解到selenium中提供了页面前进,后退的方法,forward()方法和back()方法,今天学习到selenium中提供的switch_to.windows()方法可以实现页面间的切换,其中webdriver提供的current_window_handle可以获得当前页面的句柄,window_handles可以获得所有打开的页面的句柄。

以https://hao.360.cn/?src=bm页面为例,编写了一个窗口之间切换的应用实例

# coding="utf-8"

from selenium import webdriver
import time

try:
    driver = webdriver.Firefox()
    #设置隐式等待
    driver.implicitly_wait(10)
    driver.get("https://hao.360.cn/?src=bm")

    #获得360窗口句柄
    search_windows = driver.current_window_handle
    
    driver.find_element_by_link_text("58 同 城").click()
    #driver.find_element_by_link_text("微博").click()

    #获得当前所有打开窗口的句柄
    all_handles = driver.window_handles
    print(all_handles)
    
    #进入58同城窗口
    for handle in all_handles:
        if handle != search_windows:
            driver.switch_to.window(handle)
            print("now 58同城 window!")
            time.sleep(5)

    #回到搜索窗口
    for handle in all_handles:
        if handle == search_windows:
            driver.switch_to.window(handle)
            print("now 360 window")
            time.sleep(5)
            driver.find_element_by_id("search-kw").send_keys("selenium")
            driver.find_element_by_id("search-btn").click()
            time.sleep(5)
except BaseException as msg:
    print(msg)
finally:
    driver.quit()


猜你喜欢

转载自blog.csdn.net/u012605082/article/details/80537244