@Test
    @Order(9)
    @DisplayName("DataTable: globalfilter and remove row (manually remove from filteredValue)")
    void globalFilterAndRemoveRowV1(Page page) {
        // Arrange
        DataTable dataTable = page.dataTable;
        dataTable.sort("Name");

        // Act
        WebElement globalFilterInput = page.globalFilter.getInput();
        globalFilterInput.clear();
        ComponentUtils.sendKeys(globalFilterInput, "Script");
        PrimeSelenium.guardAjax(globalFilterInput).sendKeys(Keys.TAB);

        // Assert
        List<ProgrammingLanguage> langsFiltered = filterByNameContains("Script");
        assertRows(dataTable, langsFiltered);
        int rows = dataTable.getRows().size();

        // Act - remove one row
        WebElement removeButton = dataTable.getRow(0).getCell(3).getWebElement().findElement(By.className("ui-button"));
        PrimeSelenium.guardAjax(removeButton).click();

        // Assert - one row less than before
        assertEquals(rows - 1, dataTable.getRows().size());

        // Act - remove another row
        rows = dataTable.getRows().size();
        removeButton = dataTable.getRow(0).getCell(3).getWebElement().findElement(By.className("ui-button"));
        PrimeSelenium.guardAjax(removeButton).click();

        // Assert - one row less than before
        assertEquals(rows - 1, dataTable.getRows().size());

        // Arrange (remove both removed script-languages from language-list)
        List<ProgrammingLanguage> languagesWithoutScriptLangs = languages.stream().filter(l -> !l.getName().contains("Script")).collect(Collectors.toList());

        // Act
        globalFilterInput = page.globalFilter.getInput();
        globalFilterInput.clear();
        ComponentUtils.sendKeys(globalFilterInput, "Java");
        PrimeSelenium.guardAjax(globalFilterInput).sendKeys(Keys.TAB);

        // Assert
        langsFiltered = languagesWithoutScriptLangs.stream().filter(l -> l.getName().contains("Java")).collect(Collectors.toList());
        assertRows(dataTable, langsFiltered);
        rows = dataTable.getRows().size();

        // Act
        page.buttonDeleteRow.click();

        // Assert - one row less than before
        assertEquals(rows - 1, dataTable.getRows().size());

        assertNoJavascriptErrors();
    }
Add and remove rows from filtered DataTable
https://github.com/primefaces/primefaces/issues/7336
primefaces-integration-tests/src/test/java/org/primefaces/integrationtests/datatable/DataTable021Test.java