如何在 WebDriver 中处理框架?
我们可以在 Selenium WebDriver 中处理框架。html 代码中的框架由 frames/iframe 标签表示。Selenium 可以通过将 WebDriver 访问权从主页切换到框架来处理框架。
下面列出了处理框架的方法:-
driver.switch_to_frame("frame name") - frame name 是框架的名称。
driver.switch_to_frame("framename.0.frame1") - 用于通过点分隔路径来访问框架中的子框架。在此处,它将指向具有名称 frame1 的框架,它是由名称为 framename 的框架的第一个子框架。
driver.switch_to_default_content() - 用于将 WebDriver 访问权从框架切换到主页。
让我们看看框架中元素的 html 代码。

上图中高亮的标记名称是 frame,并且 name 属性的值是 frame_bottom。
示例
代码实现
from selenium import webdriver
driver = webdriver.Chrome(executable_path='../drivers/chromedriver')
#implicit wait time
driver.implicitly_wait(5)
#url launch
driver.get("https://the-internet.herokuapp.com/nested_frames")
#switch to frame
driver.switch_to.frame('frame-bottom')
#identify source element
s = driver.find_element_by_tag_name("body")
#obtain text
t = s.text
print('Text is: ' + t)
#quit browser
driver.quit()输出

广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程语言
C++
C#
MongoDB
MySQL
Javascript
PHP