如何使用selenium通过tag_name查找最近的父级

时间:2014-02-16 21:34:01

标签: html ruby selenium xpath

我正在使用selenium-webdriver使用“表格样式”网站。

表格中有很多嵌套,并且没有idname属性。

所以我决定在表格中获取标题文本以找到这样的数据位置。

 driver = Selenimum::WebDriver.for :firefox
 element = driver.find_element(:xpath,
   "//font[@color='#FFFFFF' and text()='some probably unique text']")

来自这样的HTML。

<table><tbody>
...
<table><tbody><tr><td><font color="#FFFFFF">
  some probably unique text
</font></td></tr></table>
...
</tbody></table>

我希望从上面的代码中获取table元素中的内部font元素。 我知道我可以使用element.find_element(:xpath, "../../../.."),但这有点令人作呕。

我想至少指定一个标记名称element.find_element(:xpath, "../*/table")

有办法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用XPath轴ancestor

element = driver.find_element(:xpath, ".//font[@color='#FFFFFF' and text()='some probably unique text']/ancestor::table")

或嵌套的XPath:不适用于像您这样的嵌套表

element = driver.find_element(:xpath, ".//table[.//font[@color='#FFFFFF' and text()='some probably unique text']]")