首页 > 解决方案 > 为 RobotFramework RIDE 获取 iFrame 内元素的 xpath

问题描述

我正在尝试通过 iframe 内的 id 获取“表单”元素的 xpath。

在此处输入图像描述

当我查询时在 chrome xpath 插件中

//iframe[包含(@id,'fraModalPopup')]

它为我提供了 iframe,但是当我尝试从层次结构中获取任何内容时,它只会返回 null。例如,如果我尝试做

//iframe[contains(@id,'fraModalPopup')]/html // 返回 null

或者

//iframe[contains(@id,'fraModalPopup')]/form[contains(@id='aspnetForm')] //不确定是否是正确的xpath语句-也返回null

请任何人指导我如何抓住表单元素?我必须在 RIDE(机器人框架)中使用这个 xpath。

标签: seleniumxpathrobotframework

解决方案


iframe是主 HTML DOM 中的一个元素,它包含自己的嵌入式 HTML DOM。您不需要iframe用作上下文节点来查找框架内的表单,但您需要切换到该 iframe

select frame  id=fraModalPopup

能够处理嵌入式 HTML DOM 中的元素(无需添加"//iframe"到 XPath)

xpath=//form[@id='aspnetForm']

推荐阅读