硒找不到元素

时间:2011-07-18 00:33:13

标签: xpath

我正在使用selenium webdriver测试我的webapp,但是驱动程序找不到我的元素,元素的样式设置为display:none visible,而我正在使用xpath来检索该元素,这里是我的xpath

By.XPath(".//*[@id='box']/table/tbody/tr[3]/td[4]")

请告知。

非常感谢

3 个答案:

答案 0 :(得分:1)

tbody对我来说很可疑。这通常由某些浏览器隐式插入。我不知道有谁在html中使用它。

因此,您可以在没有它的情况下尝试XPath:

  

By.XPath( “// * [@ id中= '盒子'] /表/ TR [3] / TD [4]”)

如果这没有帮助:你能添加一个(X)HTML片段吗?

答案 1 :(得分:0)

删除该前导点:

By.XPath("//*[@id='box']/table/tbody/tr[3]/td[4]")

答案 2 :(得分:0)

也许,出于调试原因(也许不仅仅是为了这个原因),你应该分割你的xpath。例如(在伪python中):

tables = driver.findElementsByXPath("//*[@id='box']/table")
if len(tables) == 0:
   break

trs = tables[0].findElementsByXPath("/tr")
if len(trs) == 0:
   break

tds = trs[3].findElementsByXPath("/td") # or maybe trs[2]
if len(tds) == 0:
   break

td = tds[4] # or maybe tds[3]