看了小菠萝的测试笔记,学一下切换iframe,但是代码运行的时候有报错,于是根据情况做了一些修改
iframe切换成功后就可以继续进行其他操作了
关键字:
# ===切换至iframe===
driver.switch_to.frame(iframe1)
# 这里的iframe需要自己用find_element查找
# ===切换回主页面===
driver.switch_to.default_content()
html文件和py文件都是在小菠萝给的代码的基础上修改的
html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>学习web自动化</title>
</head>
<body>
<p id="p1">今天学一下切换iframe</p>
<iframe id="iframe1" src="https://blog.51cto.com/51ctoblog/" height="300px" width="80%">
</iframe>
<a href="https://www.cnblogs.com/poloyy/" id="out">点击学习小菠萝的测试笔记</a>
</body>
</html>
html运行截图:
py文件
在小菠萝的原代码基础上改了些东西
改了一下chromedriver的加载路径的代码
改了一下网站,小菠萝用的是百度,但是好像不让用了,就换了51的,定位的元素也换了一下
# !/usr/bin/env python
# -*- coding: utf-8 -*-
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
# 加载驱动,路径自己配置
# 运行时报错提示启用警告,于是网上查了一下,改了
driver_service = Service(executable_path=r"C:\Users\这一堆是chromedriver的路径\Scripts\chromedriver.exe")
driver = webdriver.Chrome(service=driver_service)
# html页面路径需要自己配置
driver.get(
r"file:\\D:\\FORpycharm\drafts\\221116\\221116-iframe\\iframe.html")
driver.maximize_window()
# 找到iframe元素
iframe1 = driver.find_element(By.ID, "iframe1")
# ===切换至iframe===
driver.switch_to.frame(iframe1)
# 找到iframe中页面的元素
# 找到搜索框
inputElement = driver.find_element(By.ID, "TopSearchInput")
# 输入搜索内容
inputElement.send_keys("切换iframe")
# 找到搜索按钮
searchElement = driver.find_element(By.ID, "TopSearchBtn")
searchElement.click()
time.sleep(2)
# ===切换回主页面===
driver.switch_to.default_content()
# 点击主页面元素
driver.find_element(By.ID, "out").click()