提问者:小点点

iframe src属性与Selenium的getPageSource()方法返回的实际iframe页面源


在阅读了Switch-to-iframe留档之后,我仍然不确定调用river. SwitchTo().frame(frame元素)后会返回什么。

通过Page source,我参考了getPageSource()中的定义。但是我找不到任何确认src的属性与page source相同的东西。我认为在切换过程中,web驱动程序会向src url发送请求,并使用响应为iframe创建页面源,正确吗?

iframe src的属性是存储其页面源的地址吗?在这里,它说

src属性指定要嵌入iframe中的文档的地址。

(1)无论如何,假设我们有一个像下面这样的iframe

<iframe src="/video.mp4">
   #document    ----> may or may not exist, not sure if #document create by src or not 
   <html>  
   </html> 
</iframe>

当驱动程序切换到这个iframe时,

>

  • “/video. mp4”的内容是否用于创建iframe的页面源(我认为页面源是#文档)?但这是一个视频文件,如何使用视频作为页面源(html)?

    或者页面源是“/video. mp4”的conetent#文档?

    (2)如果iframe有一个html作为src,例如

    <iframe src="/file.html">
       #document    ----> may or may not exist, not sure if #document create by src or not 
       <html>  
       </html> 
    </iframe>
    

    页面源是否变成file. html中的任何内容以及iframe中的#文档?或者#文档只会在驱动程序切换后使用file.html中的内容创建?

    (3)如果iframe没有src,比如

    <iframe></iframe>
    

    iframe还能有页面源吗?驱动程序切换到这个iframe后,在这种情况下getPageSource()会返回什么?


  • 共1个答案

    匿名用户

    getPageSource()获取最后加载的页面的源,它实际上是当前页面的源。返回的页面源是底层文本超标记语言DOM的表示。

    其中iframe是一种将文档嵌入到超文本标记语言文档中的结构,以便嵌入的数据显示在浏览器窗口的子窗口中。这并不意味着完全包含,这两个文档是独立的,它们都被视为完整的文档,而不是将一个文档视为另一个文档的一部分。

    src属性指定要嵌入iframe中的文档的地址。

    语法:

    <iframe src="URL">
    

    属性值:

    Value        Description
    URL          Specifies the URL of the document to embed in the iframe.
    

    可能的值:

    • 绝对URL-指向另一个网站(如src="http://www.example.com/default.htm")
    • 相对URL-指向网站中的文件(如src="default. htm")

    考虑到超文本标记语言:

    <iframe src="/video.mp4">
       #document    ----> may or may not exist, not sure if #document create by src or not 
       <html>  
       </html> 
    </iframe>
    

    这里的video. mp4是网站中的文件,它将嵌入框架中,您可以在切换到框架元素后访问。

    一旦您切换到所需的iframe,您可以再次使用getPageSource()提取iframe元素的DOM树。