@@ -16,27 +16,24 @@ to the command line. Most of the useful arguments are related to logging.
16
16
17
17
To start a driver with a default service instance:
18
18
19
- {{< tabpane langEqualsHeader=true >}}
19
+ {{< tabpane text=true langEqualsHeader=true >}}
20
20
{{< tab header="Java" >}}
21
- ChromeDriverService service = new ChromeDriverService.Builder().build();
22
- WebDriver driver = new ChromeDriver(service);
21
+ {{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L28-L29" >}}
23
22
{{< /tab >}}
24
23
{{< tab header="Python" >}}
25
- from selenium.webdriver.chrome.service import Service
26
- from selenium import webdriver
27
-
28
- service = Service()
29
- driver = webdriver.Chrome(service=service)
24
+ {{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L9-L10" >}}
30
25
{{< /tab >}}
31
26
{{< tab header="CSharp" >}}
27
+ {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L17-L18" >}}
32
28
{{< /tab >}}
33
29
{{< tab header="Ruby" >}}
34
- service = Selenium::WebDriver::Service.chrome
35
- driver = Selenium::WebDriver.for : chrome , service: service
30
+ {{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L12-L13" >}}
36
31
{{< /tab >}}
37
32
{{< tab header="JavaScript" >}}
33
+ {{< badge-code >}}
38
34
{{< /tab >}}
39
35
{{< tab header="Kotlin" >}}
36
+ {{< badge-code >}}
40
37
{{< /tab >}}
41
38
{{< /tabpane >}}
42
39
@@ -45,61 +42,133 @@ driver = Selenium::WebDriver.for :chrome, service: service
45
42
** Note:** If you are using Selenium 4.6 or greater, you shouldn't need to set a driver location.
46
43
If you can not update Selenium or have an advanced use case here is how to specify the driver location:
47
44
48
- {{< tabpane langEqualsHeader=true >}}
49
- {{% tab header="Java" text=true %}}
50
- In Java you can also set the driver location with a System Property:
51
- ``` java
52
- System . setProperty(" webdriver.chrome.driver" , driver_location);
53
- ```
54
-
55
- Otherwise:
56
- ``` java
57
- ChromeDriverService service = new ChromeDriverService .Builder ()
58
- .usingDriverExecutable(driverLocation)
59
- .build();
60
-
61
- ChromeDriver driver = new ChromeDriver (service);
62
- ```
63
- {{% /tab %}}
64
-
45
+ {{< tabpane text=true langEqualsHeader=true >}}
46
+ {{< tab header="Java" >}}
47
+ {{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L34-L36" >}}
48
+ {{< /tab >}}
65
49
{{< tab header="Python" >}}
66
- from selenium.webdriver.chrome.service import Service
67
- from selenium import webdriver
68
-
69
- service = Service(executable_path=driver_location)
70
- driver = webdriver.Chrome(service=service)
50
+ {{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L16" >}}
71
51
{{< /tab >}}
72
52
{{< tab header="CSharp" >}}
73
- var driver = new ChromeDriver(driverLocation);
53
+ {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L25" >}}
74
54
{{< /tab >}}
75
55
{{< tab header="Ruby" >}}
76
- service = Selenium::WebDriver::Service.chrome(path: driver_location)
77
- driver = Selenium::WebDriver.for : chrome , service: service
56
+ {{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L18" >}}
78
57
{{< /tab >}}
79
58
{{< tab header="JavaScript" >}}
80
- const {Builder} = require('selenium-webdriver');
81
- const chrome = require('selenium-webdriver/chrome');
82
-
83
- const service = new chrome.ServiceBuilder(driverLocation);
84
- const driver = new Builder().forBrowser('chrome').setChromeService(service).build();
59
+ {{< badge-code >}}
85
60
{{< /tab >}}
86
61
{{< tab header="Kotlin" >}}
87
- import org.openqa.selenium.chrome.ChromeDriver
88
-
89
- fun main(args: Array<String >) {
90
- System.setProperty("webdriver.chrome.driver", driverLocation)
91
- val driver = ChromeDriver()
92
- }
62
+ {{< badge-code >}}
93
63
{{< /tab >}}
94
64
{{< /tabpane >}}
95
65
96
66
## Driver port
97
67
68
+ If you want the driver to run on a specific port, you may specify it as follows:
69
+
70
+ {{< tabpane text=true langEqualsHeader=true >}}
71
+ {{< tab header="Java" >}}
72
+ {{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L43-L45" >}}
73
+ {{< /tab >}}
74
+ {{< tab header="Python" >}}
75
+ {{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L24" >}}
76
+ {{< /tab >}}
77
+ {{< tab header="CSharp" >}}
78
+ {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L35" >}}
79
+ {{< /tab >}}
80
+ {{< tab header="Ruby" >}}
81
+ {{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L25" >}}
82
+ {{< /tab >}}
83
+ {{< tab header="JavaScript" >}}
84
+ {{< badge-code >}}
85
+ {{< /tab >}}
86
+ {{< tab header="Kotlin" >}}
87
+ {{< badge-code >}}
88
+ {{< /tab >}}
89
+ {{< /tabpane >}}
98
90
99
91
## Setting log output
100
92
93
+ Getting driver logs can be helpful for debugging various issues. The Service class lets you
94
+ direct where the logs will go
101
95
102
- ### Console output
96
+ Currently, the default behavior for logging varies by language (and sometimes browser):
103
97
98
+ {{< tabpane text=true langEqualsHeader=true >}}
99
+ {{% tab header="Java" %}}
100
+ Logging output defaults to STDERR
101
+ {{% /tab %}}
102
+ {{% tab header="Python" %}}
103
+ Logging output defaults to none, except for Firefox, which defaults to "geckodriver.log"
104
+ {{% /tab %}}
105
+ {{% tab header="CSharp" %}}
106
+ Logging output defaults to none
107
+ {{% /tab %}}
108
+ {{% tab header="Ruby" %}}
109
+ Logging output defaults to none, unless the WebDriver logger level is set to ` :debug ` ,
110
+ in which case the driver logging is sent to the same output as the Selenium logging.
111
+ {{% /tab %}}
112
+ {{% tab header="JavaScript" %}}
113
+ {{% /tab %}}
114
+ {{% tab header="Kotlin" %}}
115
+ Logging output defaults to STDERR
116
+ {{% /tab %}}
117
+ {{< /tabpane >}}
104
118
105
119
### File output
120
+
121
+ To change the logging output to save to a specific file:
122
+
123
+ {{< tabpane text=true langEqualsHeader=true >}}
124
+ {{< tab header="Java" >}}
125
+ Java allows you to set this by method:
126
+ {{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L52-L54" >}}
127
+ Or by System Property:
128
+ {{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L61-L62" >}}
129
+ {{< /tab >}}
130
+ {{< tab header="Python" >}}
131
+ {{< gh-codeblock path="examples/python/tests/drivers/test_service.py#L33" >}}
132
+ {{< /tab >}}
133
+ {{< tab header="CSharp" >}}
134
+ {{< gh-codeblock path="examples/dotnet/SeleniumDocs/Drivers/ServiceTest.cs#L46" >}}
135
+ {{< /tab >}}
136
+ {{< tab header="Ruby" >}}
137
+ {{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L32" >}}
138
+ {{< /tab >}}
139
+ {{< tab header="JavaScript" >}}
140
+ {{< badge-code >}}
141
+ {{< /tab >}}
142
+ {{< tab header="Kotlin" >}}
143
+ {{< badge-code >}}
144
+ {{< /tab >}}
145
+ {{< /tabpane >}}
146
+
147
+ ### Console output
148
+
149
+ To change the logging output to display in the console as STDOUT:
150
+
151
+ {{< tabpane text=true langEqualsHeader=true >}}
152
+ {{% tab header="Java" %}}
153
+ Java allows you to set this by method:
154
+ {{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L69-L71" >}}
155
+ Or by System Property:
156
+ {{< gh-codeblock path="examples/java/src/test/java/dev/selenium/drivers/ServiceTest.java#L78-L79" >}}
157
+ {{% /tab %}}
158
+ {{% tab header="Python" %}}
159
+ This is not yet supported in Python
160
+ {{% /tab %}}
161
+ {{% tab header="CSharp" %}}
162
+ This is not yet supported in .NET
163
+ {{% /tab %}}
164
+ {{< tab header="Ruby" >}}
165
+ {{< gh-codeblock path="examples/ruby/spec/drivers/service_spec.rb#L41" >}}
166
+ {{< /tab >}}
167
+ {{< tab header="JavaScript" >}}
168
+ {{< badge-code >}}
169
+ {{< /tab >}}
170
+ {{< tab header="Kotlin" >}}
171
+ {{< badge-code >}}
172
+ {{< /tab >}}
173
+ {{< /tabpane >}}
174
+
0 commit comments