Selenium 切换 frame/iframe

复制代码
'''
环境:
Python 3.8
selenium==3.141.0
urllib3==1.26.19
'''
复制代码
'''
说明:
driver.switch_to.frame() # 将当前定位的主体切换为frame/iframe表单的内嵌页面中
driver.switch_to.default_content() # 跳回最外层的页面
'''
复制代码
# 判断元素是否在 frame/ifame 中
复制代码
# 126 邮箱为例
复制代码
# -*- coding: UTF-8 -*-

from selenium import webdriver
import time

# 谷歌浏览器位置
CHROME_PATH = r'xxx\\chrome.exe'
# 谷歌浏览器驱动地址
CHROMEDRIVER_PATH = r'xxx\\chromedriver.exe'

options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", False)
options.binary_location = CHROME_PATH
driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, options=options)

driver.get('https://www.126.com/')

# 调到 ifame
iframe = driver.find_element_by_tag_name('iframe')
driver.switch_to.frame(iframe)

element = driver.find_element_by_name('email')
element.send_keys('xiaoxiao')

# 跳回最外层的页面
driver.switch_to.default_content()
element = driver.find_element_by_link_text('注册新账号')
element.click()

time.sleep(10)
driver.quit()
复制代码
'''
参考:
【web端自动化】如何判断页面元素是否嵌套在iframe里面
https://blog.csdn.net/lanniya152/article/details/124364417

python自动化测试selenium(四)切换页面、切换窗口
https://blog.csdn.net/u010835747/article/details/125501993

web自动化:4.2selenium如何实现iframe窗口的切换(3种方法)
https://blog.csdn.net/weixin_48415452/article/details/120035381

python+selenium(11)---操作id为动态变化的frame(iframe)
https://blog.csdn.net/wjgccsdn/article/details/113935626

Selenium之link_text和partial_link_text定位
https://blog.csdn.net/dpl12/article/details/102847074
'''
相关推荐
YYYing.3 分钟前
【C++进阶系列 (七)】C++ RTTI 深度剖析:从 typeid 到 dynamic_cast 的底层之旅
开发语言·c++·c/c++·rtti
泡干脆面就番茄12 分钟前
深度学习:PyTorch框架初识——MNIST手写数字识别
python·深度学习
shirsl16 分钟前
算法 Day 5 树 / 二叉树 + DFS
数据结构·python·算法
门思科技25 分钟前
开源网关有哪些:主流类型梳理
网络·python·物联网
szephyr26 分钟前
Python 爬虫合规与反爬实战:从 requests 到 Playwright
爬虫·python·requests·playwright·反爬
E-iceblue1 小时前
Excel 列转行/行列转换全指南:从 4 种常见解法到 Python 批量自动化
python·excel·python库·spire.xls
言乐61 小时前
Python + NumPy 从零实现的 BP 神经网络(反向传播)脚本模型,包含前向传播、反向传播、训练和预测,并用 XOR 数据做示例
python·django·virtualenv·pygame·tornado
nvvas1 小时前
Java 入门(四):数组——数据的集合管理
java·开发语言
Ticnix2 小时前
多租户 RAG:让每个用户只检索到自己的知识库
后端·python·agent
ID34610744202 小时前
【课程设计】基于Spring Boot+Vue的游戏账号租赁系统的设计与实现-计算机毕设 附源码50345
javascript·vue.js·spring boot·python·node.js·php·课程设计