这是我的其他帖子的延续
Using JSoup to get data-code value of a table
我正在尝试使用Selenium webdriver中的<span>
方法将文本放在桌面上的cssSelector()
标记内
<table class ="team-list">
<tr data-code="1">
<td>
<span>
Get This Text
</span>
</td>
</tr>
</table>
我已尝试过以下代码,但这会在每行的所有单元格中打印出文本,但我只需要在<span>
代码中找到一个
WebDriver driver = new FirefoxDriver();
driver.get("http://www.example.com");
List<WebElement> elements = driver.findElements(By.cssSelector("table.team-list td"));
for(WebElement element: elements)
{
System.out.println(element.getText());
}
答案 0 :(得分:0)
我认为您应该将选择器更改为:
By.cssSelector("table.team-list span")
答案 1 :(得分:0)
尝试这样的事情。
WebDriver driver = new FirefoxDriver();
driver.get("http://www.example.com");
List<WebElement> elements = driver.findElements(By.cssSelector("table.team-list td"));
for(WebElement element: elements)
{
try{
System.out.println(element.findElement(By.tagName("span")).getText());
}(org.openqa.selenium.NoSuchElementException nsee){
}
}
答案 2 :(得分:0)
如果您知道要查找的文字,则可以执行以下操作:
WebDriver driver = new FirefoxDriver();
driver.get("http://www.example.com");
List<WebElement> elements = driver.findElements(By.cssSelector("table.team-list td"));
for(WebElement element: elements)
{
if(element.getText().equals("Get This Text"))
System.out.println(element.getText());
}
可能是o(n),但是如果您不关心可以解决问题的性能。