web自动化 -- 浏览器窗口切换

切换浏览器窗口

示例:

from time import sleep
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

url = "https://www.baidu.com"
search_box = ‘//*[@id="kw"]‘
click_search = ‘//*[@id="su"]‘

driver = webdriver.Chrome()  # 定义 driver
driver.implicitly_wait(10)  # 设置隐式等待,作用域是全局

try:
    driver.get(url)
    driver.find_element_by_xpath(search_box).send_keys(‘有道云‘)  # 输入搜索关键字
    driver.find_element_by_xpath(click_search).click()  # 搜索

    # 窗口切换
    # setup1:获取所有窗口的句柄
    window_handle_list = driver.window_handles
    print(‘最开始的句柄列表:‘, window_handle_list)

    # 当前所在的窗口句柄
    now_window = driver.current_window_handle

    # 打开新窗口
    driver.find_element_by_xpath(‘//*[text()="官方"]‘).click()
    sleep(0.5)  # 打开新窗口就得 sleep() 一下

    # setup2:等待新窗口打开
    WebDriverWait(driver, 5).until(EC.new_window_is_opened(window_handle_list))

    # setup3:获取新窗口打开后的  所有窗口的句柄
    opened_window_handle_list = driver.window_handles
    print(‘打开新窗口的句柄列表:‘, opened_window_handle_list)

    # setup4:让句柄进入新窗口
    driver.switch_to.window(opened_window_handle_list[-1])  # 列表的 -1下标 就是最后一个,最后一个自然是最新打开的窗口

    # # 在新窗口内的其他操作
    driver.find_element_by_xpath(‘//*[@id="form-realname"]‘).send_keys(13290021660)
    sleep(1)

    # setup5:切换回其他窗口
    driver.switch_to.window(opened_window_handle_list[0])  # 列表的 0下标 就是最前一个窗口

    sleep(1)
    driver.quit()
except Exception as e:
    driver.quit()
    raise e

原文地址:https://www.cnblogs.com/mua9102/p/12346557.html

时间: 2024-10-14 21:39:10

web自动化 -- 浏览器窗口切换的相关文章

WebDriver中在多个浏览器窗口切换

package webdriver; import java.util.logging.Logger; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.interactions.Actions; import org.testng.annotation

web自动化6-selenium多窗口切换及JS对话框处理

1.    多窗口切换 browser.window_handles                 显示所有句柄 browser.current_window_handle 显示当前句柄 browser.switch_to_window(browser.window_handles[1])  切换句柄 2.    js对话框处理 alter = browser.find_element_by_xpath('//*[@id="topguideloginform"]/div[4]/but

Python+selenium+eclipse执行web自动化(三)浏览器frame及element定位

WEB页面上frame及element定位,需要先了解页面HTML结构,如下图所示: 在Firefox或者IE中按F12按键调用开发人员工具,在HTML界面可以看到页面的大体结构(也可参考http://wenku.baidu.com/view/f7f7514e763231126edb117a.html?re=view学习更多HTML内容).首先是HTML底层,然后是head头文件和body主体文件.在此界面可使用箭头图形按钮来快速获取某个控件的对应信息,如所在frame的名称.控件的名称.ID等

python - web自动化测试 - 元素操作 - 窗口切换

# -*- coding:utf-8 -*- ''' @project: web学习 @author: Jimmy @file: 元素操作-切换.py @ide: PyCharm Community Edition @time: 2019-01-19 10:43 @blog: https://www.cnblogs.com/gotesting/ ''' ''' windows窗口切换:切换到要操作的窗口 有多个窗口 1. 触发新窗口的出现 2. 得知道新窗口是谁 -- 依据窗口的window_h

章节十四、6-如何切换浏览器窗口

一.在自动化的过程中我们需要把操作从一个窗口转移到另一个窗口进行一些操作,那么我们该如何实现这个功能? 例如,我们需要在点击图中“打开新窗口”后在新的窗口中进行搜索. 每个窗口都带有一个固定句柄,每个打开的窗口都会有一个id,我们需要让selenium找到这个id然后在各个句柄(窗口)中进行切换 1 package switchto; 2 3 import java.util.Set; 4 import java.util.concurrent.TimeUnit; 5 6 import org.

在web浏览器窗口中编辑报表的报表控件Stimulsoft Reports.Web

Stimulsoft Reports.Web是一个报表工具,适用于Web的报表生成器控件.其设计的目的在于通过Web浏览器创建和渲染报表.您可以创建报表,显示报表,打印报表,导出报表. Stimulsoft Reports.Web将提供完整的报表创建周期,从报表模板开始到在浏览器中显示报表为止.这一过程可在web浏览器未被关闭时完成.Stimulsoft Reports.Web是第一款可以让您直接在Web中编辑报表的报表工具.在您的客户端的机器里不需要安装.Net框架.ActiveX控件或其他特

Selenium2学习-015-WebUI自动化实战实例-013-通过 URL 关闭多余的已开浏览器窗口

在日常的 WebUI 自动化测试脚本执行的过程中,经常会打开不同的网页,进行相应的操作,此时可能会打开很多的网页,当打开的网页过多时,无效的网页资源对运行脚本的机器造成了过多无效的资源浪费,因而在日常的网页自动化测试脚本运行的过程中要关闭过多冗余的页面,降低系统无效损耗. 此文中所述方法通过 URL 对已开窗口进行匹配,将不匹配的窗口页面关闭,一定程度减少了系统损耗,有兴趣的小主们,可进一步优化相应的程序源码,或在日常脚本编写调用此方法的过程中尽量使参数 URL 足够精确,可最大限度的减少系统无

Selenium2学习-021-WebUI自动化实战实例-019-设置浏览器窗口位置大小

前文简略讲述了如何获取浏览器窗口的位置和大小,此文讲述如何通过 webdriver 设置浏览器窗口的位置和大小. 直接上码了...... 1 /** 2 * Set browser size for expected setting 3 * 4 * @author Aaron.ffp 5 * @version V1.0.0: autoSeleniumDemo main.aaron.sele.core SeleniumCore.java setBrowserSize, 2015-7-28 01:1

python自动化脚本初学记录之窗口切换(3)

脚本过程:打开www.baidu.com点击hao123进入hao123页面(注意:并未出现新窗口),在hao123页面分别点击"头条新闻","人民网","新华网","央视网",将会依次打开4个窗口,浏览器中一共有5个窗口,获取所有窗口句柄(使用driver.window_handles),然后使用driver.switch_to.window(handles[x])依次切换到每个窗口并打印窗口标题(页面标签),打印页面标签使