Java 从列表集合中删除一些单词

Java 从列表集合中删除一些单词,java,selenium,Java,Selenium,我正在对一个网页进行selenium测试,该网页返回一个表,其中有一些行和列显示支付数据。我试图从我使用的XPATH结果中去掉一些字符/单词,因为我在做断言时不需要这个部分(检查表中的数据是否正确) 通常情况下,网页还会返回一个“下拉按钮”作为文本(有一个图标),就在识别号之前(例如168.3285.6021,如下所示)。 我使用的是it.set(it.next().replaceAll(“下拉箭头”);因此,下拉箭头文本被替换为nothing,这只适用于第一行,但其他两行不会被替换。有什么建议

我正在对一个网页进行selenium测试,该网页返回一个表,其中有一些行和列显示支付数据。我试图从我使用的XPATH结果中去掉一些字符/单词,因为我在做断言时不需要这个部分(检查表中的数据是否正确)

通常情况下,网页还会返回一个“下拉按钮”作为文本(有一个图标),就在识别号之前(例如168.3285.6021,如下所示)。 我使用的是it.set(it.next().replaceAll(“下拉箭头”);因此,下拉箭头文本被替换为nothing,这只适用于第一行,但其他两行不会被替换。有什么建议吗

    public void check_receivals() {

    // Check how many lines and assert the size (from xpath)
    List<WebElement> Receivals = driver.findElements(By.xpath("//*[@id='received-overview']//div[@class='bdpo-overview-table-row']/div[@class='claims']"));
    System.out.println(Receivals.size() + " receival lines found");
    assertEquals(7, Receivals.size());

    // Test data to compare against..aka expectedResultList
    List<String> expectedResultList = new ArrayList<>();
    expectedResultList.add ("168.3285.6021\n" + "Payment 2015\n" + "01-01-2015\n" + "€ 246");
    expectedResultList.add ("143.8407.8413\n" + "Payment 2015\n" + "01-01-2015\n" + "€ 233");
    expectedResultList.add ("154.2841.2407\n" + "Payment 2015\n" + "01-01-2015\n" + "€ 253");

    // Assert
    List<WebElement> ReceivalLines = driver.findElements(By.xpath("//*[@id='received-overview']//div[@class='bdpo-overview-table-row']/div[@class='claims']"));
    List<String> ReceivalLines_List = ReceivalLines.stream().map(WebElement::getText).collect(Collectors.toList());

    ListIterator<String> it = ReceivalLines_List.listIterator();
    while(it.hasNext()) {
        it.set(it.next().replaceAll("DropDown Arrow ",""));

    assertEquals(ReceivalLines_List, expectedResultList);
public void check\u receivals(){
//检查行数并断言大小(来自xpath)
List Receivals=driver.findElements(By.xpath(“//*[@id='received-overview']///div[@class='bdpo-overview-table-row']]/div[@class='claims']);
System.out.println(receival.size()+“找到了receival行”);
assertEquals(7,Receivals.size());
//要与..aka expectedResultList进行比较的测试数据
List expectedResultList=新建ArrayList();
expectedResultList.add(“168.3285.6021\n”+“付款2015\n”+“01-01-2015\n”+”€246”);
expectedResultList.add(“143.8407.8413\n”+“付款2015\n”+“01-01-2015\n”+”233欧元”);
expectedResultList.add(“154.2841.2407\n”+“2015年付款”+“01-01-2015\n”+”253欧元”);
//断言
List ReceivalLines=driver.findElements(By.xpath(“//*[@id='received-overview']///div[@class='bdpo-overview-table-row']]/div[@class='claims']);
List ReceivalLines_List=ReceivalLines.stream().map(WebElement::getText.collect(Collectors.toList());
ListIterator it=ReceivalLines_List.ListIterator();
while(it.hasNext()){
it.set(it.next().replaceAll(“下拉箭头“,”);
资产质量(接收行列表、预期结果列表);

问题在于您在使用迭代器时正在修改迭代器。我建议使用map函数将replace部分作为流操作

List<String> ReceivalLines_List = ReceivalLines.stream().map(WebElement::getText).map(s -> s.replaceAll("DropDown Arrow ","")).collect(Collectors.toList());
List ReceivalLines\u List=ReceivalLines.stream().map(WebElement::getText).map(s->s.replaceAll(“下拉箭头”),collect(Collectors.toList());
我不会这么做。只需在验证字符串中添加“下拉按钮”即可。如果有一天图标意外消失,该怎么办?您的测试将通过,但将缺少一个重要的UI元素。