我需要使用css选择器迭代表

时间:2015-03-06 00:35:36

标签: selenium xpath selenium-webdriver css-selectors

enter image description here screenshot of the page

我正在尝试使用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都被视为一行,您将在其中看到一个包含列条目的表。

1 个答案:

答案 0 :(得分:1)

您正在使用的xpath非常脆弱,因为它从html元素开始,并且在很大程度上取决于页面的HTML结构。毋庸置疑 - 它很庞大,而且不易阅读且容易理解。

依赖于元素属性 - 类或ID 。例如:

div#dojox_grid__View_11 div.dojoxGridContent div.dojoxGridRow