如何在 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()

输出

更新于:2021-11-18

295 次浏览

开启你的 职业

完成课程获取认证

开始吧
广告
© . All rights reserved.