我正在尝试为 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
最佳答案
如何先选择相关的 iframe,然后使用该框架内的 xpath。
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
这应该会有所帮助,除非我答错了问题。
关于html - 如何找到框架集中元素的 XPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8929824/