我正在使用selenium webdriver测试我的webapp,但是驱动程序找不到我的元素,元素的样式设置为display:none visible,而我正在使用xpath来检索该元素,这里是我的xpath
By.XPath(".//*[@id='box']/table/tbody/tr[3]/td[4]")
请告知。
非常感谢
答案 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]