码迷,mamicode.com
首页 > Web开发 > 详细

webdriver的handle 切换窗口

时间:2020-01-26 22:35:28      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:comm   主页   nal   点击   drive   code   ==   res   加载   

有时候自动化测试需要打开多个标签页,在不同标签页之间切换并且测试功能,需要用到handle.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# File : handle.py
# Date : 2020/1/26 20:46
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from time import sleep

# 实例化driver
with webdriver.Chrome() as driver:
    # 打开火狐主页
    driver.get("https://home.firefoxchina.cn/")

    # 显式等待
    wait = WebDriverWait(driver, 10)

    # 获得当前所在标签页的handle
    original_window = driver.current_window_handle

    # 检查只有一个打开的标签页
    assert len(driver.window_handles) == 1

    # 点击网页中的百度链接,会在新的标签页打开百度主页
    wait.until(EC.presence_of_element_located((By.XPATH, '//li[@sid="375"]/a'))).click()
    # driver.find_element_by_link_text("百  度").click()

    # 等待新标签页的打开
    wait.until(EC.number_of_windows_to_be(2))

    # 循环所有handles,如果handle不是当前标签页的,就切换到当前标签页
    for window_handle in driver.window_handles:
        if window_handle != original_window:
            driver.switch_to.window(window_handle)
            break

    # 等待新标签页加载内容,确认标题
    wait.until(EC.title_is("百度一下,你就知道"))
    
    # 切换回火狐主页标签
    driver.switch_to.window(original_window)
    # 关闭当前标签页
    driver.close()
    sleep(2)

webdriver的handle 切换窗口

标签:comm   主页   nal   点击   drive   code   ==   res   加载   

原文地址:https://www.cnblogs.com/milesma/p/12234854.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!