我只想使用CSS选择器打印在硒板球比赛中所有击球手打分的成绩。所有行都具有相同的类名,并且运行在第三行中,因此我仅使用CSS选择器选择了第三行,但无法打印运行。这是我的代码:
package SomeBasicAutomationPractice;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class tableGrid_Practice {
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "G:\\AutomationPractice\\src\\drivers\\chromedriver.exe");
WebDriver driver= new ChromeDriver();
driver.get("http://www.cricbuzz.com/live-cricket-scorecard/18970/pak-vs-sl-2nd-t20i-pakistan-v-sri-lanka-in-uae-2017");
Thread.sleep(5000);
WebElement table=driver.findElement(By.cssSelector("div[class='cb-col cb-col-100 cb-ltst-wgt-hdr']"));
int count=table.findElements(By.cssSelector("div[classname='cb-col cb-col-100 cb-scrd-itms'] div:nth-child(3)")).size();
System.out.println(count);
for(int i=0;i<count;i++)
{
//table.findElements(By.cssSelector("div[classname='cb-col cb-col-100 cb-scrd-itms'] div:nth-child(3)")).get(i);
System.out.println(table.findElements(By.cssSelector("div[classname='cb-col cb-col-100 cb-scrd-itms'] div:nth-child(3)")).get(i));
}
}
}
在上面的代码段中,您实际上是在打印WebElement。 findElements
方法返回List,并且此列表上的get方法将返回第i个webelement。为了打印运行,您必须根据页面的HTML结构在webelement上使用getText()或getAttribute(“ attribute_name”)。您可以这样修改代码:
List<WebElement> list=table.findElements(By.cssSelector("div[classname='cb-col cb-col-100 cb-scrd-itms'] div:nth-child(3)"));
for(int i=0; i<list.size(); i++){
System.out.println(list.get(i).getText());
}
请相应地修改脚本,您将可以打印运行。
谢谢!