如何在框架集中找到元素的XPath?

时间:2012-01-19 16:42:00

标签: html css xpath selenium

我正在尝试为Selenium编写一个测试用例,我在查找元素方面遇到了一些麻烦。我相信它,因为我的网站使用HTML框架集。

如果我打开Firebug,并尝试简单地选择所有链接:

//a

...我没有得到任何结果(虽然'菜单'框架包含大约15个以上的链接)。

如果我在菜单框中右键单击并选择“仅显示此框架”,然后然后选择Firebug中的所有链接,我将返回所有15个以上的链接

这让我相信X-Path无法遍历特定帧中的元素。这是真的吗?

当网站显示所有框架时,我可以选择特定框架:

//frame[@name='menu']

...但是尝试深入查看以该X-Path开头的链接不起作用:

//frame[@name='menu']//a
//frame[@name='menu']@@@//a <-- Special '@@@' syntax I read about somewhere to try.

任何帮助尝试使用X-Paths解决此问题的方法都表示赞赏。如果CSS选择器可以工作,我也可以在那里使用一些指针。谢谢!

JG

1 个答案:

答案 0 :(得分:2)

首先选择相关的iframe,然后使用该帧中的xpaths。


Ruby中的示例代码

iframename = @driver.execute_script("return document.getElementById('IDName').getElementsByTagName('iframe')[0].getAttribute('Attributename')")
@driver.switch_to.frame iframename

# then work with the xpaths
@driver.find_element(:xpath, "//section[@id='SomeId']/div").click

这应该有所帮助,除非我提出错误的问题。