Skip to content

Commit 337f2c4

Browse files
committed
Add NewSeleniumServiceV4 to support cli args for selenium version 4
1 parent e9100b7 commit 337f2c4

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

service.go

+33
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,39 @@ func NewSeleniumService(jarPath string, port int, opts ...ServiceOption) (*Servi
194194
return s, nil
195195
}
196196

197+
func NewSeleniumServiceV4(jarPath string, port int, opts ...ServiceOption) (*Service, error) {
198+
s, err := newService(exec.Command("java"), "/wd/hub", port, opts...)
199+
if err != nil {
200+
return nil, err
201+
}
202+
s.cmd.Args = append(s.cmd.Args, "-jar", jarPath)
203+
if s.javaPath != "" {
204+
s.cmd.Path = s.javaPath
205+
}
206+
207+
var classpath []string
208+
if s.htmlUnitPath != "" {
209+
classpath = append(classpath, s.htmlUnitPath)
210+
}
211+
if s.geckoDriverPath != "" {
212+
// s.cmd.Args = append([]string{"java", "-Dwebdriver.gecko.driver=" + s.geckoDriverPath}, s.cmd.Args[1:]...)
213+
classpath = append(classpath, s.geckoDriverPath)
214+
}
215+
if s.chromeDriverPath != "" {
216+
classpath = append(classpath, s.chromeDriverPath)
217+
}
218+
if len(classpath) > 0 {
219+
s.cmd.Args = append(s.cmd.Args, "--ext", strings.Join(classpath, ":"))
220+
}
221+
s.cmd.Args = append(s.cmd.Args, "standalone", "--port", strconv.Itoa(port))
222+
fmt.Println("Selenium Args:", s.cmd.Args)
223+
if err := s.start(port); err != nil {
224+
return nil, err
225+
}
226+
227+
return s, nil
228+
}
229+
197230
// NewChromeDriverService starts a ChromeDriver instance in the background.
198231
func NewChromeDriverService(path string, port int, opts ...ServiceOption) (*Service, error) {
199232
cmd := exec.Command(path, "--port="+strconv.Itoa(port), "--url-base=wd/hub", "--verbose")

0 commit comments

Comments
 (0)