diff --git a/vaadin-testbench-core/src/test/java/com/vaadin/testbench/ElementQueryTest.java b/vaadin-testbench-core/src/test/java/com/vaadin/testbench/ElementQueryTest.java index 32307eaed..41624eed5 100644 --- a/vaadin-testbench-core/src/test/java/com/vaadin/testbench/ElementQueryTest.java +++ b/vaadin-testbench-core/src/test/java/com/vaadin/testbench/ElementQueryTest.java @@ -810,4 +810,19 @@ public void attributeNotExistAttributeAnnotationWords() { private Set set(T... ts) { return Set.of(ts); } + + @Test(expected = NoSuchElementException.class) + public void first_throwsNoSuchElementException_whenNoElements() { + createExampleElementQuery().first(); + } + + @Test(expected = NoSuchElementException.class) + public void last_throwsNoSuchElementException_whenNoElements() { + createExampleElementQuery().last(); + } + + @Test(expected = NoSuchElementException.class) + public void get_throwsNoSuchElementException_whenNoElements() { + createExampleElementQuery().get(0); + } } diff --git a/vaadin-testbench-shared/src/main/java/com/vaadin/testbench/ElementQuery.java b/vaadin-testbench-shared/src/main/java/com/vaadin/testbench/ElementQuery.java index 01a41dbce..b8dfb578a 100644 --- a/vaadin-testbench-shared/src/main/java/com/vaadin/testbench/ElementQuery.java +++ b/vaadin-testbench-shared/src/main/java/com/vaadin/testbench/ElementQuery.java @@ -1241,6 +1241,9 @@ public T waitForFirst(long timeOutInSeconds) { */ public T last() { List all = all(); + if (all.isEmpty()) { + throw new NoSuchElementException(getNoSuchElementMessage(null)); + } return all.get(all.size() - 1); }