我正在尝试使用selenium webdriver自动化页面。该页面包含一个具有以下xpath的表。
在下面找到一个可行的xpath验证示例。 我正在通过div迭代它,因为行被视为div,其中将有一个包含所有行的表。
table = common.getObjectByXpath("html/body/div[4]/div[4]/div[1]/div/div/div[3]/div/div[2]/div/div/div/div");
rows = table.findElements(By.tagName("div"));
for(int i=1;i<=rows.size();i++){
if(driver.findElement(By.xpath("html/body/div[4]/div[4]/div[1]/div/div/div[3]/div/div[2]/div/div/div/div/div["+i+"]/table/tbody/tr/td[5]/span").getText().equals("endnode 11.1"))){
System.out.println(" print Something");
}
}
使用xpath可以正常工作。但我想用css选择器做到这一点。我附上表格的样本格式。 在下图中,每个div都被视为一行,您将在其中看到一个包含列条目的表。
答案 0 :(得分:1)
您正在使用的xpath非常脆弱,因为它从html
元素开始,并且在很大程度上取决于页面的HTML结构。毋庸置疑 - 它很庞大,而且不易阅读且容易理解。
而依赖于元素属性 - 类或ID 。例如:
div#dojox_grid__View_11 div.dojoxGridContent div.dojoxGridRow