Skip to content
This repository was archived by the owner on Mar 25, 2025. It is now read-only.

Commit e00a4f2

Browse files
authored
Merge pull request #24 from slu-it/select-performance
Use performance enhanced implementation of Selenium's Select when creating events
2 parents fcca989 + 3671630 commit e00a4f2

File tree

9 files changed

+26
-25
lines changed

9 files changed

+26
-25
lines changed

webtester-core/src/main/java/info/novatec/testit/webtester/events/pagefragments/DeselectedByIndicesEvent.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import org.apache.commons.lang.StringUtils;
1010
import org.openqa.selenium.WebElement;
11-
import org.openqa.selenium.support.ui.Select;
1211

1312
import lombok.Getter;
1413

@@ -18,6 +17,7 @@
1817
import info.novatec.testit.webtester.events.PageFragmentEventBuilder;
1918
import info.novatec.testit.webtester.pagefragments.MultiSelect;
2019
import info.novatec.testit.webtester.pagefragments.PageFragment;
20+
import info.novatec.testit.webtester.pagefragments.utils.EnhancedSelect;
2121

2222

2323
/**
@@ -58,7 +58,7 @@ public boolean needsBeforeData() {
5858

5959
@Override
6060
public PageFragmentEventBuilder<DeselectedByIndicesEvent> setBeforeData(WebElement webElement) {
61-
before = new Select(webElement).getAllSelectedOptions()
61+
before = new EnhancedSelect(webElement).getAllSelectedOptions()
6262
.stream()
6363
.map(element -> StringUtils.defaultString(element.getAttribute("index")))
6464
.map(Integer::parseInt)
@@ -73,7 +73,7 @@ public boolean needsAfterData() {
7373

7474
@Override
7575
public PageFragmentEventBuilder<DeselectedByIndicesEvent> setAfterData(WebElement webElement) {
76-
after = new Select(webElement).getAllSelectedOptions()
76+
after = new EnhancedSelect(webElement).getAllSelectedOptions()
7777
.stream()
7878
.map(element -> StringUtils.defaultString(element.getAttribute("index")))
7979
.map(Integer::parseInt)

webtester-core/src/main/java/info/novatec/testit/webtester/events/pagefragments/DeselectedByTextsEvent.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import org.apache.commons.lang.StringUtils;
1010
import org.openqa.selenium.WebElement;
11-
import org.openqa.selenium.support.ui.Select;
1211

1312
import lombok.Getter;
1413

@@ -18,6 +17,7 @@
1817
import info.novatec.testit.webtester.events.PageFragmentEventBuilder;
1918
import info.novatec.testit.webtester.pagefragments.MultiSelect;
2019
import info.novatec.testit.webtester.pagefragments.PageFragment;
20+
import info.novatec.testit.webtester.pagefragments.utils.EnhancedSelect;
2121

2222

2323
/**
@@ -58,7 +58,7 @@ public boolean needsBeforeData() {
5858

5959
@Override
6060
public PageFragmentEventBuilder<DeselectedByTextsEvent> setBeforeData(WebElement webElement) {
61-
before = new Select(webElement).getAllSelectedOptions()
61+
before = new EnhancedSelect(webElement).getAllSelectedOptions()
6262
.stream()
6363
.map(element -> StringUtils.defaultString(element.getText()))
6464
.collect(Collectors.toList());
@@ -72,7 +72,7 @@ public boolean needsAfterData() {
7272

7373
@Override
7474
public PageFragmentEventBuilder<DeselectedByTextsEvent> setAfterData(WebElement webElement) {
75-
after = new Select(webElement).getAllSelectedOptions()
75+
after = new EnhancedSelect(webElement).getAllSelectedOptions()
7676
.stream()
7777
.map(element -> StringUtils.defaultString(element.getText()))
7878
.collect(Collectors.toList());

webtester-core/src/main/java/info/novatec/testit/webtester/events/pagefragments/DeselectedByValuesEvent.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import org.apache.commons.lang.StringUtils;
1010
import org.openqa.selenium.WebElement;
11-
import org.openqa.selenium.support.ui.Select;
1211

1312
import lombok.Getter;
1413

@@ -18,6 +17,7 @@
1817
import info.novatec.testit.webtester.events.PageFragmentEventBuilder;
1918
import info.novatec.testit.webtester.pagefragments.MultiSelect;
2019
import info.novatec.testit.webtester.pagefragments.PageFragment;
20+
import info.novatec.testit.webtester.pagefragments.utils.EnhancedSelect;
2121

2222

2323
/**
@@ -58,7 +58,7 @@ public boolean needsBeforeData() {
5858

5959
@Override
6060
public PageFragmentEventBuilder<DeselectedByValuesEvent> setBeforeData(WebElement webElement) {
61-
before = new Select(webElement).getAllSelectedOptions()
61+
before = new EnhancedSelect(webElement).getAllSelectedOptions()
6262
.stream()
6363
.map(element -> StringUtils.defaultString(element.getAttribute("value")))
6464
.collect(Collectors.toList());
@@ -72,7 +72,7 @@ public boolean needsAfterData() {
7272

7373
@Override
7474
public PageFragmentEventBuilder<DeselectedByValuesEvent> setAfterData(WebElement webElement) {
75-
after = new Select(webElement).getAllSelectedOptions()
75+
after = new EnhancedSelect(webElement).getAllSelectedOptions()
7676
.stream()
7777
.map(element -> StringUtils.defaultString(element.getAttribute("value")))
7878
.collect(Collectors.toList());

webtester-core/src/main/java/info/novatec/testit/webtester/events/pagefragments/SelectedByIndexEvent.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package info.novatec.testit.webtester.events.pagefragments;
22

33
import org.openqa.selenium.WebElement;
4-
import org.openqa.selenium.support.ui.Select;
54

65
import lombok.Getter;
76

@@ -11,6 +10,7 @@
1110
import info.novatec.testit.webtester.events.PageFragmentEventBuilder;
1211
import info.novatec.testit.webtester.pagefragments.PageFragment;
1312
import info.novatec.testit.webtester.pagefragments.SingleSelect;
13+
import info.novatec.testit.webtester.pagefragments.utils.EnhancedSelect;
1414

1515

1616
/**
@@ -50,8 +50,9 @@ public boolean needsAfterData() {
5050

5151
@Override
5252
public PageFragmentEventBuilder<SelectedByIndexEvent> setAfterData(WebElement webElement) {
53-
Select select = new Select(webElement);
54-
this.index = select.getOptions().indexOf(select.getFirstSelectedOption());
53+
EnhancedSelect select = new EnhancedSelect(webElement);
54+
String indexAsString = select.getFirstSelectedOption().getAttribute("index");
55+
this.index = Integer.valueOf(indexAsString);
5556
return this;
5657
}
5758

webtester-core/src/main/java/info/novatec/testit/webtester/events/pagefragments/SelectedByIndicesEvent.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import org.apache.commons.lang.StringUtils;
1010
import org.openqa.selenium.WebElement;
11-
import org.openqa.selenium.support.ui.Select;
1211

1312
import lombok.Getter;
1413

@@ -18,6 +17,7 @@
1817
import info.novatec.testit.webtester.events.PageFragmentEventBuilder;
1918
import info.novatec.testit.webtester.pagefragments.MultiSelect;
2019
import info.novatec.testit.webtester.pagefragments.PageFragment;
20+
import info.novatec.testit.webtester.pagefragments.utils.EnhancedSelect;
2121

2222

2323
/**
@@ -58,7 +58,7 @@ public boolean needsBeforeData() {
5858

5959
@Override
6060
public PageFragmentEventBuilder<SelectedByIndicesEvent> setBeforeData(WebElement webElement) {
61-
before = new Select(webElement).getAllSelectedOptions()
61+
before = new EnhancedSelect(webElement).getAllSelectedOptions()
6262
.stream()
6363
.map(element -> StringUtils.defaultString(element.getAttribute("index")))
6464
.map(Integer::parseInt)
@@ -73,7 +73,7 @@ public boolean needsAfterData() {
7373

7474
@Override
7575
public PageFragmentEventBuilder<SelectedByIndicesEvent> setAfterData(WebElement webElement) {
76-
after = new Select(webElement).getAllSelectedOptions()
76+
after = new EnhancedSelect(webElement).getAllSelectedOptions()
7777
.stream()
7878
.map(element -> StringUtils.defaultString(element.getAttribute("index")))
7979
.map(Integer::parseInt)

webtester-core/src/main/java/info/novatec/testit/webtester/events/pagefragments/SelectedByTextEvent.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package info.novatec.testit.webtester.events.pagefragments;
22

33
import org.openqa.selenium.WebElement;
4-
import org.openqa.selenium.support.ui.Select;
54

65
import lombok.Getter;
76

@@ -11,6 +10,7 @@
1110
import info.novatec.testit.webtester.events.PageFragmentEventBuilder;
1211
import info.novatec.testit.webtester.pagefragments.PageFragment;
1312
import info.novatec.testit.webtester.pagefragments.SingleSelect;
13+
import info.novatec.testit.webtester.pagefragments.utils.EnhancedSelect;
1414

1515

1616
/**
@@ -50,7 +50,7 @@ public boolean needsAfterData() {
5050

5151
@Override
5252
public PageFragmentEventBuilder<SelectedByTextEvent> setAfterData(WebElement webElement) {
53-
this.text = new Select(webElement).getFirstSelectedOption().getText();
53+
this.text = new EnhancedSelect(webElement).getFirstSelectedOption().getText();
5454
return this;
5555
}
5656

webtester-core/src/main/java/info/novatec/testit/webtester/events/pagefragments/SelectedByTextsEvent.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import org.apache.commons.lang.StringUtils;
1010
import org.openqa.selenium.WebElement;
11-
import org.openqa.selenium.support.ui.Select;
1211

1312
import lombok.Getter;
1413

@@ -18,6 +17,7 @@
1817
import info.novatec.testit.webtester.events.PageFragmentEventBuilder;
1918
import info.novatec.testit.webtester.pagefragments.MultiSelect;
2019
import info.novatec.testit.webtester.pagefragments.PageFragment;
20+
import info.novatec.testit.webtester.pagefragments.utils.EnhancedSelect;
2121

2222

2323
/**
@@ -58,7 +58,7 @@ public boolean needsBeforeData() {
5858

5959
@Override
6060
public PageFragmentEventBuilder<SelectedByTextsEvent> setBeforeData(WebElement webElement) {
61-
before = new Select(webElement).getAllSelectedOptions()
61+
before = new EnhancedSelect(webElement).getAllSelectedOptions()
6262
.stream()
6363
.map(element -> StringUtils.defaultString(element.getText()))
6464
.collect(Collectors.toList());
@@ -72,7 +72,7 @@ public boolean needsAfterData() {
7272

7373
@Override
7474
public PageFragmentEventBuilder<SelectedByTextsEvent> setAfterData(WebElement webElement) {
75-
after = new Select(webElement).getAllSelectedOptions()
75+
after = new EnhancedSelect(webElement).getAllSelectedOptions()
7676
.stream()
7777
.map(element -> StringUtils.defaultString(element.getText()))
7878
.collect(Collectors.toList());

webtester-core/src/main/java/info/novatec/testit/webtester/events/pagefragments/SelectedByValueEvent.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package info.novatec.testit.webtester.events.pagefragments;
22

33
import org.openqa.selenium.WebElement;
4-
import org.openqa.selenium.support.ui.Select;
54

65
import lombok.Getter;
76

@@ -11,6 +10,7 @@
1110
import info.novatec.testit.webtester.events.PageFragmentEventBuilder;
1211
import info.novatec.testit.webtester.pagefragments.PageFragment;
1312
import info.novatec.testit.webtester.pagefragments.SingleSelect;
13+
import info.novatec.testit.webtester.pagefragments.utils.EnhancedSelect;
1414

1515

1616
/**
@@ -50,7 +50,7 @@ public boolean needsAfterData() {
5050

5151
@Override
5252
public PageFragmentEventBuilder<SelectedByValueEvent> setAfterData(WebElement webElement) {
53-
this.value = new Select(webElement).getFirstSelectedOption().getAttribute("value");
53+
this.value = new EnhancedSelect(webElement).getFirstSelectedOption().getAttribute("value");
5454
return this;
5555
}
5656

webtester-core/src/main/java/info/novatec/testit/webtester/events/pagefragments/SelectedByValuesEvent.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import org.apache.commons.lang.StringUtils;
1010
import org.openqa.selenium.WebElement;
11-
import org.openqa.selenium.support.ui.Select;
1211

1312
import lombok.Getter;
1413

@@ -18,6 +17,7 @@
1817
import info.novatec.testit.webtester.events.PageFragmentEventBuilder;
1918
import info.novatec.testit.webtester.pagefragments.MultiSelect;
2019
import info.novatec.testit.webtester.pagefragments.PageFragment;
20+
import info.novatec.testit.webtester.pagefragments.utils.EnhancedSelect;
2121

2222

2323
/**
@@ -58,7 +58,7 @@ public boolean needsBeforeData() {
5858

5959
@Override
6060
public PageFragmentEventBuilder<SelectedByValuesEvent> setBeforeData(WebElement webElement) {
61-
before = new Select(webElement).getAllSelectedOptions()
61+
before = new EnhancedSelect(webElement).getAllSelectedOptions()
6262
.stream()
6363
.map(element -> StringUtils.defaultString(element.getAttribute("value")))
6464
.collect(Collectors.toList());
@@ -72,7 +72,7 @@ public boolean needsAfterData() {
7272

7373
@Override
7474
public PageFragmentEventBuilder<SelectedByValuesEvent> setAfterData(WebElement webElement) {
75-
after = new Select(webElement).getAllSelectedOptions()
75+
after = new EnhancedSelect(webElement).getAllSelectedOptions()
7676
.stream()
7777
.map(element -> StringUtils.defaultString(element.getAttribute("value")))
7878
.collect(Collectors.toList());

0 commit comments

Comments
 (0)