您现在的位置是:网站首页> 编程资料编程资料
Python+Selenium实现浏览器标签页的切换_python_
2023-05-26
445人已围观
简介 Python+Selenium实现浏览器标签页的切换_python_
在实际工作中,我们经常会遇到页面切换的情况。就比如当点击了某个功能的按钮后,浏览器出现了新的标签页,需要在这些标签页之间进行切换。要如何通过 selenium 来实现这样的场景呢?这就是我们今天要学习的内容。
selenium 实现浏览器标签页句柄的切换
浏览器标签页本地文件准备
这一段纯粹是因为内容太少,拿来凑字数的...
同样的,这里所使用的是我们本地的 multi.html 文件,点击该文件的 “register”,会跳转至 “www.baidu.com” 。
“multi.html” 文件的前端代码如下:
Form simple login form
利用 selenium 实现浏览器页面的切换
获取浏览器标签页句柄方法如下:
current_window_handle 获取当前标签页的句柄
window_handles 获取所有标签页的句柄
代码示例如下:
# coding:utf-8 from time import sleep from selenium import webdriver driver = webdriver.Chrome() # 启动 Chrome浏览器的 driver driver.maximize_window() # Chrome 浏览器最大化 driver.get('file:///Users/workspace/WEB_TEST_HTML/multi.html') # 打开本地的 "multi.html" 文件 sleep(1) first_window = driver.current_window_handle # 通过 current_window_handle 属性获取当前标签页的句柄 driver.find_element_by_link_text('register').click() # 通过 link_text 方法定位到 "register" 元素,执行点击操作(跳转百度) sleep(2) all_windows = driver.window_handles # 通过 window_handles 属性获取当前所有标签页的句柄 for handle in all_windows: # for 循环判断当前句柄是否是 first_window 句柄,如果不是则跳转至该句柄(该句柄为百度页面的句柄) if handle != first_window: driver.switch_to.window(handle) print("已跳转至 '百度' 标签页的句柄") sleep(1) driver.find_element_by_id('kw').send_keys('渴望力量的哈士奇') # 在百度句柄页面的搜索框输入要百度的内容 "渴望力量的哈士奇" sleep(1) driver.find_element_by_id('su').click() # 点击 "百度一下" 按钮 sleep(2) driver.switch_to.window(first_window) # 跳转至 "multi.html" 页面的句柄 email_element = driver.find_element_by_xpath('//*[@id="inputEmail"]') # 通过 xpath 定位 Email 输入框。 email_element.send_keys('username') # Email 输入框输入 "username" sleep(1) email_element.clear() # 清除 Email 输入框内容 sleep(1) email_element.send_keys('admin') # Email 输入框输入 "admin" driver.find_element_by_xpath('//*[@id="inputPassword"]').send_keys('123456') # Password 输入框输入 "123456" sleep(1) driver.find_element_by_xpath('/html/body/form/div[3]/div/button').click() sleep(1) driver.quit() 运行结果如下:

到此这篇关于Python+Selenium实现浏览器标签页的切换的文章就介绍到这了,更多相关Python Selenium浏览器标签页切换内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
您可能感兴趣的文章:
相关内容
- Python 的矩阵传播机制Broadcasting和矩阵运算_python_
- Python实现向好友发送微信消息_python_
- Python利用Selenium实现弹出框的处理_python_
- Python自动化办公之手机号提取_python_
- Python 生成器yield原理及用法_python_
- 如何让python程序正确高效地并发_python_
- pyspark自定义UDAF函数调用报错问题解决_python_
- 源码解析python中randint函数的效率缺陷_python_
- Python基本文件操作实用指南_python_
- Python自动化测试之异常处理机制实例详解_python_
