我正在使用selenium-webdriver
使用“表格样式”网站。
表格中有很多嵌套,并且没有id
或name
属性。
所以我决定在表格中获取标题文本以找到这样的数据位置。
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")
。
有办法吗?
答案 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']]")