为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取Webtable的动态Xpath?

如何获取Webtable的动态Xpath?

慕姐4208626 2021-05-07 18:05:16
List<WebElement>table=driver.findElements(By.xpath("//*[@id=\"prodDetails\"]/div[2]/div[1]/div/div[2]/div/div/table/tbody/tr"));JavascriptExecutor jse = (JavascriptExecutor) driver;// jse.executeScript("arguments[0].scrollIntoView();",table);jse.executeScript("arguments[0].style.border='3px solid red'",table);int row= table.size();我无法获得所需的行数和列数。我提供的xpath在站点上找不到表我必须获取手机的规格。
查看完整描述

3 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

代替此xpath:

//*[@id=\"prodDetails\"]/div[2]/div[1]/div/div[2]/div/div/table/tbody/tr

用这个 :

//*[@id="prodDetails"]/div[2]/div[1]/div/div[2]/div/div/table/tbody/tr

尽管我不建议您使用绝对xpath。您可以使用相对xpath,它更易读和容易。

相对Xpath:

//div[@id='prodDetails']/descendant::div[@class='pdTab'][1]/descendant::tbody/tr

在代码中类似:

List<WebElement>table=driver.findElements(By.xpath("//div[@id='prodDetails']/descendant::div[@class='pdTab'][1]/descendant::tbody/tr"));



查看完整回答
反对 回复 2021-05-12
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

而不是绝对的xpath:

//*[@id=\"prodDetails\"]/div[2]/div[1]/div/div[2]/div/div/table/tbody/tr

我建议使用简单的相对xpath:

//*[@id='prodDetails']//table/tbody/tr

如果页面中没有其他表,则此xpath将起作用。否则,请确保两个表都可以通过某些属性进行区分


查看完整回答
反对 回复 2021-05-12
  • 3 回答
  • 0 关注
  • 144 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信