Skip to content

Commit 309b3e8

Browse files
authored
[bidi][java] Deprecate using builder for Locate Node parameters. (#13767)
1 parent 911b312 commit 309b3e8

File tree

2 files changed

+50
-29
lines changed

2 files changed

+50
-29
lines changed

java/src/org/openqa/selenium/bidi/browsingcontext/LocateNodeParameters.java

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@
2929
public class LocateNodeParameters {
3030

3131
private final Locator locator;
32-
private final Optional<Long> maxNodeCount;
33-
private final Optional<ResultOwnership> ownership;
34-
private final Optional<String> sandbox;
35-
private final Optional<SerializationOptions> serializationOptions;
36-
private final Optional<List<RemoteReference>> startNodes;
32+
private Optional<Long> maxNodeCount = Optional.empty();
33+
private Optional<ResultOwnership> ownership = Optional.empty();
34+
private Optional<String> sandbox = Optional.empty();
35+
private Optional<SerializationOptions> serializationOptions = Optional.empty();
36+
private Optional<List<RemoteReference>> startNodes = Optional.empty();
3737

3838
private LocateNodeParameters(Builder builder) {
3939
this.locator = builder.locator;
@@ -44,6 +44,35 @@ private LocateNodeParameters(Builder builder) {
4444
this.startNodes = Optional.ofNullable(builder.startNodes);
4545
}
4646

47+
public LocateNodeParameters(Locator locator) {
48+
this.locator = locator;
49+
}
50+
51+
public LocateNodeParameters setMaxNodeCount(long maxNodeCount) {
52+
this.maxNodeCount = Optional.of(maxNodeCount);
53+
return this;
54+
}
55+
56+
public LocateNodeParameters setOwnership(ResultOwnership ownership) {
57+
this.ownership = Optional.of(ownership);
58+
return this;
59+
}
60+
61+
public LocateNodeParameters setSandbox(String sandbox) {
62+
this.sandbox = Optional.of(sandbox);
63+
return this;
64+
}
65+
66+
public LocateNodeParameters setSerializationOptions(SerializationOptions options) {
67+
this.serializationOptions = Optional.of(options);
68+
return this;
69+
}
70+
71+
public LocateNodeParameters setStartNodes(List<RemoteReference> startNodes) {
72+
this.startNodes = Optional.of(startNodes);
73+
return this;
74+
}
75+
4776
public Map<String, Object> toMap() {
4877
final Map<String, Object> map = new HashMap<>();
4978

@@ -62,6 +91,12 @@ public Map<String, Object> toMap() {
6291
return map;
6392
}
6493

94+
/**
95+
* @deprecated Use the chaining of LocateNodeParameters methods to add optional parameters. This
96+
* is in favor of keeping the usage pattern consistent for BiDi parameters. Use the {@link
97+
* LocateNodeParameters#LocateNodeParameters(Locator locator)} constructor and chain methods.
98+
*/
99+
@Deprecated(since = "4.20", forRemoval = true)
65100
public static class Builder {
66101

67102
private final Locator locator;

java/test/org/openqa/selenium/bidi/browsingcontext/LocateNodesTest.java

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ void canLocateNodes() {
6565

6666
driver.get(pages.xhtmlTestPage);
6767

68-
LocateNodeParameters parameters = new LocateNodeParameters.Builder(Locator.css("div")).build();
68+
LocateNodeParameters parameters = new LocateNodeParameters(Locator.css("div"));
6969

7070
List<RemoteValue> elements = browsingContext.locateNodes(parameters);
7171
assertThat(elements.size()).isEqualTo(13);
@@ -113,9 +113,7 @@ void canLocateNodesWithCSSLocator() {
113113
driver.get(pages.xhtmlTestPage);
114114

115115
LocateNodeParameters parameters =
116-
new LocateNodeParameters.Builder(Locator.css("div.extraDiv, div.content"))
117-
.setMaxNodeCount(1)
118-
.build();
116+
new LocateNodeParameters(Locator.css("div.extraDiv, div.content")).setMaxNodeCount(1);
119117

120118
List<RemoteValue> elements = browsingContext.locateNodes(parameters);
121119
assertThat(elements.size()).isGreaterThanOrEqualTo(1);
@@ -141,9 +139,7 @@ void canLocateNodesWithXPathLocator() {
141139
driver.get(pages.xhtmlTestPage);
142140

143141
LocateNodeParameters parameters =
144-
new LocateNodeParameters.Builder(Locator.xpath("/html/body/div[2]"))
145-
.setMaxNodeCount(1)
146-
.build();
142+
new LocateNodeParameters(Locator.xpath("/html/body/div[2]")).setMaxNodeCount(1);
147143

148144
List<RemoteValue> elements = browsingContext.locateNodes(parameters);
149145
assertThat(elements.size()).isGreaterThanOrEqualTo(1);
@@ -170,9 +166,7 @@ void canLocateNodesWithInnerText() {
170166
driver.get(pages.xhtmlTestPage);
171167

172168
LocateNodeParameters parameters =
173-
new LocateNodeParameters.Builder(Locator.innerText("Spaced out"))
174-
.setMaxNodeCount(1)
175-
.build();
169+
new LocateNodeParameters(Locator.innerText("Spaced out")).setMaxNodeCount(1);
176170

177171
List<RemoteValue> elements = browsingContext.locateNodes(parameters);
178172
assertThat(elements.size()).isGreaterThanOrEqualTo(1);
@@ -194,7 +188,7 @@ void canLocateNodesWithMaxNodeCount() {
194188
driver.get(pages.xhtmlTestPage);
195189

196190
LocateNodeParameters parameters =
197-
new LocateNodeParameters.Builder(Locator.css("div")).setMaxNodeCount(4).build();
191+
new LocateNodeParameters(Locator.css("div")).setMaxNodeCount(4);
198192

199193
List<RemoteValue> elements = browsingContext.locateNodes(parameters);
200194
assertThat(elements.size()).isEqualTo(4);
@@ -212,9 +206,7 @@ void canLocateNodesWithNoneOwnershipParameter() {
212206
driver.get(pages.xhtmlTestPage);
213207

214208
LocateNodeParameters parameters =
215-
new LocateNodeParameters.Builder(Locator.css("div"))
216-
.setOwnership(ResultOwnership.NONE)
217-
.build();
209+
new LocateNodeParameters(Locator.css("div")).setOwnership(ResultOwnership.NONE);
218210

219211
List<RemoteValue> elements = browsingContext.locateNodes(parameters);
220212
assertThat(elements.size()).isEqualTo(13);
@@ -233,9 +225,7 @@ void canLocateNodesWithRootOwnershipParameter() {
233225
driver.get(pages.xhtmlTestPage);
234226

235227
LocateNodeParameters parameters =
236-
new LocateNodeParameters.Builder(Locator.css("div"))
237-
.setOwnership(ResultOwnership.ROOT)
238-
.build();
228+
new LocateNodeParameters(Locator.css("div")).setOwnership(ResultOwnership.ROOT);
239229

240230
List<RemoteValue> elements = browsingContext.locateNodes(parameters);
241231
assertThat(elements.size()).isEqualTo(13);
@@ -276,10 +266,9 @@ void canLocateNodesGivenStartNodes() {
276266
new RemoteReference(RemoteReference.Type.SHARED_ID, value.getSharedId().get())));
277267

278268
LocateNodeParameters parameters =
279-
new LocateNodeParameters.Builder(Locator.css("input"))
269+
new LocateNodeParameters(Locator.css("input"))
280270
.setStartNodes(startNodes)
281-
.setMaxNodeCount(50)
282-
.build();
271+
.setMaxNodeCount(50);
283272

284273
List<RemoteValue> elements = browsingContext.locateNodes(parameters);
285274
assertThat(elements.size()).isEqualTo(35);
@@ -298,10 +287,7 @@ void canLocateNodesInAGivenSandbox() {
298287
browsingContext.navigate(pages.xhtmlTestPage, ReadinessState.COMPLETE);
299288

300289
LocateNodeParameters parameters =
301-
new LocateNodeParameters.Builder(Locator.css("div"))
302-
.setSandbox(sandbox)
303-
.setMaxNodeCount(1)
304-
.build();
290+
new LocateNodeParameters(Locator.css("div")).setSandbox(sandbox).setMaxNodeCount(1);
305291

306292
List<RemoteValue> elements = browsingContext.locateNodes(parameters);
307293
assertThat(elements.size()).isEqualTo(1);

0 commit comments

Comments
 (0)