如何使用Selenium访问嵌套HTML标记中的Web元素

2024-03-28 22:23:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个在iframe中生成报告的网站,该网站的HTML结构如下所示:

<html> <!-- a --> <body> . . (C) . <iframe> <html> <!-- b --> <body> . . (D) . </body> </html> </iframe> </body> </html>

我想知道如何从上面访问包含“(D)”的主体中的元素。到目前为止,我已经尝试使用xpath,但是如果我从(D)中的元素复制xpath,那么当程序从html标记b开始搜索时,它什么也找不到。我测试了,看看是否有任何子web元素,它有0。尝试按ID搜索(D)中的元素也会导致NoTouchElementException。这不是时间问题,因为我正在使用WebDriverWait 120秒,以确保页面上的所有内容都已加载。谢谢你能提供的任何帮助


1条回答
网友
1楼 · 发布于 2024-03-28 22:23:27

因为它位于iframe中,所以需要使用switchTo获取帧的DOM。 更多信息请参见:https://www.techbeamers.com/switch-between-iframes-selenium-python/https://www.guru99.com/handling-iframes-selenium.html

driver.switch_to.iframe(self,frame reference)

其中参考是:

  • 通过使用标记名(在本例中为“iframe”)
  • 使用IFrame的Id
  • 使用IFrame的名称
  • 相关问题 更多 >