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"));
守着星空守着你
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将起作用。否则,请确保两个表都可以通过某些属性进行区分
添加回答
举报
0/150
提交
取消