📜  如何使用Python处理Selenium中的 Frames/iFrames

📅  最后修改于: 2022-05-13 01:55:24.504000             🧑  作者: Mango

如何使用Python处理Selenium中的 Frames/iFrames

Selenium是一种通过程序控制互联网浏览器的有效设备。它适用于所有浏览器,适用于所有基本操作系统,其脚本是用多种语言编写的,例如Python、 Java、C# 等,我们可以使用Python运行。

HTML 大纲用于将您的程序窗口隔离成多个段,其中每个部分可以堆叠不同的 HTML 报告。程序窗口中的各种边缘称为框架集。窗口被分割成轮廓,表格也被组成:成线和段。

要求:您需要安装 chromedriver 并设置路径。单击此处下载。有关更多信息,请点击此链接

处理帧/iFrame:-

过程:

该网页分为三个框架,左上(第一个框架)和左下(第二个框架)和第三个框架。所有框架相互连接。然后我们通过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)


输出: