我需要使用 css 选择器迭代 table
I need to iterate table using css selectors
我正在尝试使用 selenium webdriver 自动化页面。该页面包含具有以下 xpath 的 table。
在下面找到一个工作正常的示例 xpath 验证。
我正在通过 div 对其进行迭代,因为行被视为 div,在该行下将有一个 table,其中包含所有提到的行。
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 选择器来做。我附上 table 的示例格式。
在下图中,每个 div 被视为一行,在其下您将看到一个 table,其中包含列条目。
您使用的 xpath 非常脆弱,因为它从 html
元素开始并且在很大程度上取决于页面的 HTML 结构。不用说 - 它很大,可读性差且不易理解。
相反 依赖于元素属性 - 类 或 ids。例如:
div#dojox_grid__View_11 div.dojoxGridContent div.dojoxGridRow
我正在尝试使用 selenium webdriver 自动化页面。该页面包含具有以下 xpath 的 table。
在下面找到一个工作正常的示例 xpath 验证。 我正在通过 div 对其进行迭代,因为行被视为 div,在该行下将有一个 table,其中包含所有提到的行。
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 选择器来做。我附上 table 的示例格式。 在下图中,每个 div 被视为一行,在其下您将看到一个 table,其中包含列条目。
您使用的 xpath 非常脆弱,因为它从 html
元素开始并且在很大程度上取决于页面的 HTML 结构。不用说 - 它很大,可读性差且不易理解。
相反 依赖于元素属性 - 类 或 ids。例如:
div#dojox_grid__View_11 div.dojoxGridContent div.dojoxGridRow