使用代码String result = driver.findElement (By.id ("ulDezenas")).GetText ();
,我可以得到结果001122334455,它存在于uldezenas中。我希望以这种方式获得数字,无论如何分开00 11 22 33 44 55。
我已经尝试过split命令,但遗憾的是我不能。
HTML
<ul class="numbers diaDeSorte" id="ulDezenas">
<li>00</li>
<li>11</li>
<li>22</li>
<li>33</li>
<li>44</li>
<li>55</li>
<li>66</li>
</ul>
要以下列方式单独提取数字,00 11 22 33 44 55
等您需要创建一个List,您可以使用其中一个元素,然后使用StringJoiner类添加空格字符,您可以使用以下任一Locator Strategies:
List<WebElement> elementList = driver.findElements(By.cssSelector("ul.numbers.diaDeSorte#ulDezenas li"));
ArrayList<String> values = new ArrayList<>();
for(WebElement element:elementList)
values.add(element.getText());
StringJoiner joiner = new StringJoiner(" ");
for (String item : values)
joiner.add(item.toString());
System.out.println(joiner.toString());
使用xpath:
List<WebElement> elementList = driver.findElements(By.xpath("//ul[@class='numbers diaDeSorte' and @id='ulDezenas']//li"));
ArrayList<String> values = new ArrayList<>();
for(WebElement element:elementList)
values.add(element.getText());
StringJoiner joiner = new StringJoiner(" ");
for (String item : values)
joiner.add(item.toString());
System.out.println(joiner.toString());
List<WebElement> elementList = driver.findElements(By.cssSelector("ul.numbers.diaDeSorte#ulDezenas li"));
ArrayList<String> values = new ArrayList<>();
for(WebElement element:elementList)
values.add(element.getText());
System.out.println(values.stream().
map(Object::toString).
collect(Collectors.joining(" ")).toString());
List<WebElement> elementList = driver.findElements(By.xpath("//ul[@class='numbers diaDeSorte' and @id='ulDezenas']//li"));
ArrayList<String> values = new ArrayList<>();
for(WebElement element:elementList)
values.add(element.getText());
System.out.println(org.apache.commons.lang3.StringUtils.join(values," "));
首先获取父(ul)webelement;然后按标签名称'li'查找返回列表的元素。迭代它并获取文本。
WebElement ul = driver.findElement(By.id(“ulDezenas”));
for (WebElement li : ul.findElements(By.tagName("li"))) {
System.out.println(li.getText());
}