我试图使用以下代码获取针对Total显示的值:
driver.get("https://www.cricbuzz.com/live-cricket-scorecard/20137/sl-vs-eng-4th-odi-england-tour-of-sri-lanka-2018");
String textextras = driver.findElement(By.cssSelector("div[class='cb-col cb-col-100 cb-ltst-wgt-hdr']")).findElement(By.cssSelector("div:nth-last-child(3) div:nth-child(2)")).getText();
System.out.println(textextras);
String textsum = driver.findElement(By.cssSelector("div[class='cb-col cb-col-100 cb-ltst-wgt-hdr']")).findElement(By.cssSelector("div:nth-last-child(2) div:nth-child(2)")).getText();
System.out.println(textsum);19名击球员RB4S6SSR
谁能帮我一下,为什么它不工作文本和,但它工作良好的文本附加变量?
发布于 2018-10-21 18:49:29
我假设您正在尝试从第一个表中选择总计值。简而言之,失败的原因是您的css表选择器不够具体,而且它选择了多个表元素,这会导致不希望得到的结果。
就你而言,我建议你做以下工作:
div[class='cb-col cb-col-100 cb-ltst-wgt-hdr']选择4个表,而不是只选择第一个表。检查铬中选择器的结果数。

这是第一个表- #innings_1 > div:first-child的唯一选择器。
这是修改过的代码。我刚换了桌子的选择器!
WebElement table = driver.findElement(By.cssSelector("#innings_1 > div:first-child"));
String textextras = table.findElement(By.cssSelector("div:nth-last-child(3) div:nth-child(2)")).getText();
System.out.println("textextras = "+textextras);
String textsum = table.findElement(By.cssSelector("div:nth-last-child(2) > div:nth-last-child(2)")).getText();
System.out.println("textsum = "+textsum);发布于 2018-11-20 19:42:50
在过去,.getText()也有意想不到的行为,所以我建议使用element.getAttribute("innerText"),如所描述的这里。当结果字符串为空时,它解决了我的情况。
我使用element.findElement(By.xpath(".//*[@class='title']")).getAttribute("innerText");查找类等于“title”的任何节点并获取该标题。
对于您的表,可以在xpath ("//div[contains(@class,'cb-scrd-itms')]/div[last()]")后面使用,它定位所有行并接受最后一个子div。
https://sqa.stackexchange.com/questions/36112
复制相似问题