python+selenium2学习笔记webdriver-12多窗口切换

当我们点击一个页面,跳转到另一个新页面时,再定位就需要切换到新页面的句柄去定位,看一下具体代码

from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("http://www.baidu.com")

#获得百度搜索窗口句柄(当前的)
sreach_window = driver.current_window_handle
driver.find_element_by_link_text("登录").click()
driver.find_element_by_link_text("立即注册").click()
#获得当前所有打开窗口的句柄
allwindows = driver.window_handles
#进入注册窗口
for handle in allwindows:
    if handle != sreach_window: #不是搜索句柄就是注册句柄了
        driver.switch_to.window(handle)
        print("现在是注册窗口")
        title = driver.title
        print(title)
        print(driver.current_url)
for handle in allwindows:
    if handle == sreach_window:
        driver.switch_to.window(handle)
        print("现在是搜索窗口")
        #关闭打开的登录小窗口
        driver.find_element_by_xpath(".//*[@id='TANGRAM__PSP_4__closeBtn']").click()
        print(driver.title)
        print(driver.current_url)
        driver.find_element_by_id("kw").send_keys("lalala")
        driver.find_element_by_id("su").click()
        time.sleep(2)
driver.quit()

首先我们要获取之前页面的句柄,再获取所有句柄,用遍历去查找,如果当前句柄不等于之前的句柄,则说明是新的句柄,则切换到这个页面,如果页面很多的话,就要获取多次

猜你喜欢

转载自blog.csdn.net/u013434475/article/details/80688353