我正在尝试为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
答案 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
这应该有所帮助,除非我提出错误的问题。