Skip to content

Commit acd0ad9

Browse files
committed
Making ChromeOptions fluent, like Firefox and IE
1 parent edb6a01 commit acd0ad9

File tree

1 file changed

+24
-11
lines changed

1 file changed

+24
-11
lines changed

java/client/src/org/openqa/selenium/chrome/ChromeOptions.java

+24-11
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,9 @@ public class ChromeOptions extends MutableCapabilities {
8383
*
8484
* @param path Path to Chrome executable.
8585
*/
86-
public void setBinary(File path) {
86+
public ChromeOptions setBinary(File path) {
8787
binary = checkNotNull(path).getPath();
88+
return this;
8889
}
8990

9091
/**
@@ -94,16 +95,18 @@ public void setBinary(File path) {
9495
*
9596
* @param path Path to Chrome executable.
9697
*/
97-
public void setBinary(String path) {
98+
public ChromeOptions setBinary(String path) {
9899
binary = checkNotNull(path);
100+
return this;
99101
}
100102

101103
/**
102104
* @param arguments The arguments to use when starting Chrome.
103105
* @see #addArguments(java.util.List)
104106
*/
105-
public void addArguments(String... arguments) {
107+
public ChromeOptions addArguments(String... arguments) {
106108
addArguments(ImmutableList.copyOf(arguments));
109+
return this;
107110
}
108111

109112
/**
@@ -121,16 +124,18 @@ public void addArguments(String... arguments) {
121124
*
122125
* @param arguments The arguments to use when starting Chrome.
123126
*/
124-
public void addArguments(List<String> arguments) {
127+
public ChromeOptions addArguments(List<String> arguments) {
125128
args.addAll(arguments);
129+
return this;
126130
}
127131

128132
/**
129133
* @param paths Paths to the extensions to install.
130134
* @see #addExtensions(java.util.List)
131135
*/
132-
public void addExtensions(File... paths) {
136+
public ChromeOptions addExtensions(File... paths) {
133137
addExtensions(ImmutableList.copyOf(paths));
138+
return this;
134139
}
135140

136141
/**
@@ -139,22 +144,24 @@ public void addExtensions(File... paths) {
139144
*
140145
* @param paths Paths to the extensions to install.
141146
*/
142-
public void addExtensions(List<File> paths) {
147+
public ChromeOptions addExtensions(List<File> paths) {
143148
for (File path : paths) {
144149
checkNotNull(path);
145150
checkArgument(path.exists(), "%s does not exist", path.getAbsolutePath());
146151
checkArgument(!path.isDirectory(), "%s is a directory",
147152
path.getAbsolutePath());
148153
}
149154
extensionFiles.addAll(paths);
155+
return this;
150156
}
151157

152158
/**
153159
* @param encoded Base64 encoded data of the extensions to install.
154160
* @see #addEncodedExtensions(java.util.List)
155161
*/
156-
public void addEncodedExtensions(String... encoded) {
162+
public ChromeOptions addEncodedExtensions(String... encoded) {
157163
addEncodedExtensions(ImmutableList.copyOf(encoded));
164+
return this;
158165
}
159166

160167
/**
@@ -163,11 +170,12 @@ public void addEncodedExtensions(String... encoded) {
163170
*
164171
* @param encoded Base64 encoded data of the extensions to install.
165172
*/
166-
public void addEncodedExtensions(List<String> encoded) {
173+
public ChromeOptions addEncodedExtensions(List<String> encoded) {
167174
for (String extension : encoded) {
168175
checkNotNull(extension);
169176
}
170177
extensions.addAll(encoded);
178+
return this;
171179
}
172180

173181
/**
@@ -178,27 +186,32 @@ public void addEncodedExtensions(List<String> encoded) {
178186
* @param value Value of the experimental option, which must be convertible
179187
* to JSON.
180188
*/
181-
public void setExperimentalOption(String name, Object value) {
189+
public ChromeOptions setExperimentalOption(String name, Object value) {
182190
experimentalOptions.put(checkNotNull(name), value);
191+
return this;
183192
}
184193

185194
/**
186195
* Returns the value of an experimental option.
187196
*
188197
* @param name The option name.
189198
* @return The option value, or {@code null} if not set.
199+
* @deprecated Getters are not needed in browser Options classes.
190200
*/
201+
@Deprecated
191202
public Object getExperimentalOption(String name) {
192203
return experimentalOptions.get(checkNotNull(name));
193204
}
194205

195-
public void setPageLoadStrategy(PageLoadStrategy strategy) {
206+
public ChromeOptions setPageLoadStrategy(PageLoadStrategy strategy) {
196207
setCapability(PAGE_LOAD_STRATEGY, strategy);
208+
return this;
197209
}
198210

199-
public void setUnhandledPromptBehaviour(UnexpectedAlertBehaviour behaviour) {
211+
public ChromeOptions setUnhandledPromptBehaviour(UnexpectedAlertBehaviour behaviour) {
200212
setCapability(UNHANDLED_PROMPT_BEHAVIOUR, behaviour);
201213
setCapability(UNEXPECTED_ALERT_BEHAVIOUR, behaviour);
214+
return this;
202215
}
203216

204217
/**

0 commit comments

Comments
 (0)