zoukankan      html  css  js  c++  java
  • python3 selenium 切换窗口的几种方法

    第一种方法:
    使用场景:

    打开多个窗口,需要定位到新打开的窗口

    使用方法:

    # 获取打开的多个窗口句柄
    windows = driver.window_handles
    # 切换到当前最新打开的窗口
    driver.switch_to.window(windows[-1])
    举例说明:

    1 # _._ coding:utf-8 _._
    2
    3 """
    4 :author: 花花测试
    5 :time: 2017.05.03
    6 :content: 使用第一种方法切换浏览器
    7 """
    8
    9 from selenium import webdriver
    10 import time
    11
    12 # 打开课工场网站主页【第一个窗口】
    13 driver = webdriver.Chrome()
    14 driver.get('http://www.kgc.cn/')
    15 driver.maximize_window()
    16
    17 # 点击全部课程,进入课程库【第二个窗口】
    18 driver.find_element_by_link_text('全部课程').click()
    19 time.sleep(3)
    20
    21 # 使用第一种方法切换浏览器【切换到第二个窗口】
    22 windows = driver.window_handles
    23 driver.switch_to.window(windows[-1])
    24 time.sleep(3)
    25
    26 # 点击课程库中的某个课程,进入课程详情界面【在第二个窗口页面进行元素点击操作,来判断窗口是否切换成功】
    27 driver.find_element_by_xpath('//*[@id="yw1"]/ul/li[2]').click()
    28 time.sleep(3)
    29
    30 # 关闭浏览器
    31 driver.quit()
    32 print('测试通过')
    ---------------------

    第二种方法:
    使用场景:

    打开两个窗口,需要定位到新打开的窗口

    使用方法:

    # 获得打开的第一个窗口句柄
    window_1 = driver.current_window_handle
    # 获得打开的所有的窗口句柄
    windows = driver.window_handles
    # 切换到最新的窗口
    for current_window in windows:
    if current_window != window_1:
    driver.switch_to.window(current_window)
    举例说明:
    ---------------------

    1 # _._ coding:utf-8 _._
    2
    3 """
    4 :author: 花花测试
    5 :time: 2017.05.03
    6 :content: 使用第二种方法切换浏览器
    7 """
    8
    9 from selenium import webdriver
    10 import time
    11
    12 from selenium import webdriver
    13 import time
    14
    15 # 打开课工场网站主页【第一个窗口】
    16 driver = webdriver.Chrome()
    17 driver.get('http://www.kgc.cn/')
    18 driver.maximize_window()
    19
    20 # 点击全部课程,进入课程库【第二个窗口】
    21 driver.find_element_by_link_text('全部课程').click()
    22 time.sleep(3)
    23
    24 # 使用第二种方法切换浏览器【切换到第二个窗口】
    25 window_1 = driver.current_window_handle
    26 windows = driver.window_handles
    27 for current_window in windows:
    28 if current_window != window_1:
    29 driver.switch_to.window(current_window)
    30 time.sleep(3)
    31
    32 # 点击课程库中的某个课程,进入课程详情界面【在第二个窗口页面进行元素点击操作,来判断窗口是否切换成功】
    33 driver.find_element_by_xpath('//*[@id="yw1"]/ul/li[2]').click()
    34 time.sleep(3)
    35
    36 # 关闭浏览器
    37 driver.quit()
    38 print('测试通过')

    两种方法的区别:
    1、第一种方法比较简单,能提升整体代码的性能
    2、第二种方法是大家最常用的方法,比较容易理解
    
  • 相关阅读:
    思维导图
    Delphi 之弹出气泡消息提示
    delphi 响应鼠标进入控件消息
    Delphi 获取当前鼠标下的控件内容
    delphi TTBXToolBar 增加外部控件
    delphi button 实现下拉列表
    delphi 设置多屏幕
    电脑双屏改单屏后看不到文件问题的解决
    delphi ListView 设置固定列宽
    数字孪生(Digital twin)
  • 原文地址:https://www.cnblogs.com/chenlimei/p/10488405.html
Copyright © 2011-2022 走看看