如何使用Python处理Selenium中的 Frames/iFrames
Selenium是一种通过程序控制互联网浏览器的有效设备。它适用于所有浏览器,适用于所有基本操作系统,其脚本是用多种语言编写的,例如Python、 Java、C# 等,我们可以使用Python运行。
HTML 大纲用于将您的程序窗口隔离成多个段,其中每个部分可以堆叠不同的 HTML 报告。程序窗口中的各种边缘称为框架集。窗口被分割成轮廓,表格也被组成:成线和段。
要求:您需要安装 chromedriver 并设置路径。单击此处下载。有关更多信息,请点击此链接。
处理帧/iFrame:-
switch_to.frame(name)
过程:
该网页分为三个框架,左上(第一个框架)和左下(第二个框架)和第三个框架。所有框架相互连接。然后我们通过selenium执行这些操作:
- 首先,切换到默认帧到第一帧。
- 然后使用链接文本方法查找元素
- 回到默认框架。
- 然后转到第二帧
- 使用链接文本方法查找元素
- 回到默认框架
- 然后切换到第三帧。
- 然后通过 x 路径查找元素。
执行:
Python3
# importing the modules
from selenium import webdriver
from selenium.webdriver.support.ui import Select
import time
# using chrome driver
driver = webdriver.Chrome()
# web page url
driver.get("https://www.selenium.dev/selenium/docs/api/java/index.html")
# switch to 1st frame
driver.switch_to.frame("packageListFrame")
# click on 1st frame
driver.find_element_by_link_text("org.openqa.selenium.opera").click()
# back to default web page frame
driver.switch_to.default_content()
# switch to 2nd frame
driver.switch_to.frame("packageFrame")
# click on 2nd frame
driver.find_element_by_link_text("OperaOptions").click()
# back to default web page frame
driver.switch_to.default_content()
# switch to 3rd frame
driver.switch_to.frame("classFrame")
# click on 2nd frame
driver.find_element_by_xpath('/html/body/div[1]/ul/li[4]/a').click()
time.sleep(4)
输出: –