Skip to content

Commit 6c3b01f

Browse files
authored
Merge branch 'dev' into dev
2 parents eea9e01 + 6c4e4fb commit 6c3b01f

10 files changed

+344
-36
lines changed

docs_source_files/content/remote_webdriver/remote_webdriver_client.zh-cn.md

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -219,20 +219,28 @@ upload.sendKeys("/Users/sso/the/local/path/to/darkbulb.jpg")
219219
{{< / code-panel >}}
220220
{{< / code-tab >}}
221221

222-
## Tracing client requests
222+
## 追踪客户端请求
223223

224-
This feature is only available for Java client binding (Beta onwards). The Remote WebDriver client sends requests to the Selenium Grid server, which passes them to the WebDriver. Tracing should be enabled at the server and client-side to trace the HTTP requests end-to-end. Both ends should have a trace exporter setup pointing to the visualization framework.
225-
By default, tracing is enabled for both client and server.
226-
To set up the visualization framework Jaeger UI and Selenium Grid 4, please refer to [Tracing Setup](https://github.com/SeleniumHQ/selenium/blob/selenium-4.0.0-beta-1/java/server/src/org/openqa/selenium/grid/commands/tracing.txt) for the desired version.
224+
此功能仅适用于Java客户端绑定 (Beta版以后).
225+
远程WebDriver客户端向Selenium网格服务器发送请求,
226+
后者将请求传递给WebDriver.
227+
应该在服务器端和客户端启用跟踪,
228+
以便端到端地追踪HTTP请求.
229+
两端都应该有一个指向可视化框架的追踪导出器设置.
230+
默认情况下,
231+
对客户端和服务器都启用追踪.
232+
若设置可视化框架Jaeger UI及Selenium Grid 4,
233+
请参阅所需版本的[追踪设置](https://github.com/SeleniumHQ/selenium/blob/selenium-4.0.0-beta-1/java/server/src/org/openqa/selenium/grid/commands/tracing.txt) .
227234

228-
For client-side setup, follow the steps below.
235+
对于客户端设置, 请执行以下步骤.
229236

230237
### Beta 1
231238

232-
#### Add the required dependencies
239+
#### 添加所需依赖
233240

234-
Installation of external libraries for tracing exporter can be done using Maven.
235-
Add the _opentelemetry-exporter-jaeger_ and _grpc-netty_ dependency in your project pom.xml:
241+
可以使用Maven安装追踪导出器的外部库.
242+
在项目pom.xml中添加 _opentelemetry-exporter-jaeger_
243+
_grpc-netty_ 的依赖项:
236244

237245
```xml
238246
<dependency>
@@ -248,7 +256,7 @@ Add the _opentelemetry-exporter-jaeger_ and _grpc-netty_ dependency in your proj
248256
```
249257

250258

251-
#### Add/pass the required system properties while running the client
259+
#### 在运行客户端时添加/传递所需的系统属性
252260

253261
{{< code-tab >}}
254262
{{< code-panel language="java" >}}
@@ -268,12 +276,13 @@ driver.quit();
268276
{{< / code-panel >}}
269277
{{< / code-tab >}}
270278

271-
### Beta 2 onwards
279+
### Beta 2 及以后
272280

273-
#### Add the required dependencies
281+
#### 添加所需依赖
274282

275-
Installation of external libraries for tracing exporter can be done using Maven.
276-
Add the _opentelemetry-exporter-jaeger_ and _grpc-netty_ dependency in your project pom.xml:
283+
可以使用Maven安装追踪导出器的外部库.
284+
在项目pom.xml中添加 _opentelemetry-exporter-jaeger_
285+
_grpc-netty_ 的依赖项:
277286

278287
```xml
279288
<dependency>
@@ -288,7 +297,7 @@ Add the _opentelemetry-exporter-jaeger_ and _grpc-netty_ dependency in your proj
288297
</dependency>
289298
```
290299

291-
#### Add/pass the required system properties while running the client
300+
#### 在运行客户端时添加/传递所需的系统属性
292301

293302
{{< code-tab >}}
294303
{{< code-panel language="java" >}}
@@ -307,13 +316,15 @@ driver.quit();
307316
{{< / code-panel >}}
308317
{{< / code-tab >}}
309318

310-
Please refer to [Tracing Setup](https://github.com/SeleniumHQ/selenium/blob/selenium-4.0.0-beta-1/java/server/src/org/openqa/selenium/grid/commands/tracing.txt) for more information on external dependencies versions required for the desired Selenium version.
319+
有关所需Selenium版本
320+
及其外部依赖关系版本等更多信息,
321+
请参阅[追踪设置](https://github.com/SeleniumHQ/selenium/blob/selenium-4.0.0-beta-1/java/server/src/org/openqa/selenium/grid/commands/tracing.txt) .
311322

312-
More information can be found at:
323+
更多信息请访问:
313324

314325
* OpenTelemetry: https://opentelemetry.io
315-
* Configuring OpenTelemetry:
326+
* 配置OpenTelemetry:
316327
https://github.com/open-telemetry/opentelemetry-java/tree/main/sdk-extensions/autoconfigure
317328
* Jaeger: https://www.jaegertracing.io
318-
* [Selenium Grid Observability]({{< ref "grid/grid_4/advanced_features/observability.zh-cn.md" >}})
329+
* [Selenium Grid 可观测性]({{< ref "grid/grid_4/advanced_features/observability.zh-cn.md" >}})
319330

docs_source_files/content/support_packages/chrome_devtools.de.md

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,25 @@ let element = driver.findElement({id: 'throwing-mouseover'})
237237
await element.click()
238238
{{< / code-panel >}}
239239
{{< code-panel language="kotlin" >}}
240-
# Please raise a PR to add code sample
240+
fun kotlinJsErrorListener() {
241+
val driver = ChromeDriver()
242+
val devTools = driver.devTools
243+
devTools.createSession()
244+
245+
val logJsError = { j: JavascriptException -> print("Javascript error: '" + j.localizedMessage + "'.") }
246+
devTools.domains.events().addJavascriptExceptionListener(logJsError)
247+
248+
driver.get("https://www.google.com")
249+
250+
val link2click = driver.findElement(By.name("q"))
251+
(driver as JavascriptExecutor).executeScript(
252+
"arguments[0].setAttribute(arguments[1], arguments[2]);",
253+
link2click, "onclick", "throw new Error('Hello, world!')"
254+
)
255+
link2click.click()
256+
257+
driver.quit()
258+
}
241259
{{< / code-panel >}}
242260
{{< / code-tab >}}
243261

@@ -341,6 +359,21 @@ public void deviceSimulationTest() {
341359
# Please raise a PR to add code sample
342360
{{< / code-panel >}}
343361
{{< code-panel language="kotlin" >}}
344-
# Please raise a PR to add code sample
362+
fun kotlinOverridDeviceMode() {
363+
val driver = ChromeDriver()
364+
365+
val deviceMetrics: Map<String, Any> = object : HashMap<String, Any>() {
366+
init {
367+
put("width", 600)
368+
put("height", 1000)
369+
put("mobile", true)
370+
put("deviceScaleFactor", 50)
371+
}
372+
}
373+
374+
driver.executeCdpCommand("Emulation.setDeviceMetricsOverride", deviceMetrics)
375+
driver.get("https://www.google.com")
376+
driver.quit()
377+
}
345378
{{< / code-panel >}}
346379
{{< / code-tab >}}

docs_source_files/content/support_packages/chrome_devtools.en.md

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,25 @@ let element = driver.findElement({id: 'throwing-mouseover'})
230230
await element.click()
231231
{{< / code-panel >}}
232232
{{< code-panel language="kotlin" >}}
233-
# Please raise a PR to add code sample
233+
fun kotlinJsErrorListener() {
234+
val driver = ChromeDriver()
235+
val devTools = driver.devTools
236+
devTools.createSession()
237+
238+
val logJsError = { j: JavascriptException -> print("Javascript error: '" + j.localizedMessage + "'.") }
239+
devTools.domains.events().addJavascriptExceptionListener(logJsError)
240+
241+
driver.get("https://www.google.com")
242+
243+
val link2click = driver.findElement(By.name("q"))
244+
(driver as JavascriptExecutor).executeScript(
245+
"arguments[0].setAttribute(arguments[1], arguments[2]);",
246+
link2click, "onclick", "throw new Error('Hello, world!')"
247+
)
248+
link2click.click()
249+
250+
driver.quit()
251+
}
234252
{{< / code-panel >}}
235253
{{< / code-tab >}}
236254

@@ -334,6 +352,21 @@ public void deviceSimulationTest() {
334352
# Please raise a PR to add code sample
335353
{{< / code-panel >}}
336354
{{< code-panel language="kotlin" >}}
337-
# Please raise a PR to add code sample
355+
fun kotlinOverridDeviceMode() {
356+
val driver = ChromeDriver()
357+
358+
val deviceMetrics: Map<String, Any> = object : HashMap<String, Any>() {
359+
init {
360+
put("width", 600)
361+
put("height", 1000)
362+
put("mobile", true)
363+
put("deviceScaleFactor", 50)
364+
}
365+
}
366+
367+
driver.executeCdpCommand("Emulation.setDeviceMetricsOverride", deviceMetrics)
368+
driver.get("https://www.google.com")
369+
driver.quit()
370+
}
338371
{{< / code-panel >}}
339372
{{< / code-tab >}}

docs_source_files/content/support_packages/chrome_devtools.es.md

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,25 @@ let element = driver.findElement({id: 'throwing-mouseover'})
236236
await element.click()
237237
{{< / code-panel >}}
238238
{{< code-panel language="kotlin" >}}
239-
# Please raise a PR to add code sample
239+
fun kotlinJsErrorListener() {
240+
val driver = ChromeDriver()
241+
val devTools = driver.devTools
242+
devTools.createSession()
243+
244+
val logJsError = { j: JavascriptException -> print("Javascript error: '" + j.localizedMessage + "'.") }
245+
devTools.domains.events().addJavascriptExceptionListener(logJsError)
246+
247+
driver.get("https://www.google.com")
248+
249+
val link2click = driver.findElement(By.name("q"))
250+
(driver as JavascriptExecutor).executeScript(
251+
"arguments[0].setAttribute(arguments[1], arguments[2]);",
252+
link2click, "onclick", "throw new Error('Hello, world!')"
253+
)
254+
link2click.click()
255+
256+
driver.quit()
257+
}
240258
{{< / code-panel >}}
241259
{{< / code-tab >}}
242260

@@ -340,6 +358,21 @@ public void deviceSimulationTest() {
340358
# Please raise a PR to add code sample
341359
{{< / code-panel >}}
342360
{{< code-panel language="kotlin" >}}
343-
# Please raise a PR to add code sample
361+
fun kotlinOverridDeviceMode() {
362+
val driver = ChromeDriver()
363+
364+
val deviceMetrics: Map<String, Any> = object : HashMap<String, Any>() {
365+
init {
366+
put("width", 600)
367+
put("height", 1000)
368+
put("mobile", true)
369+
put("deviceScaleFactor", 50)
370+
}
371+
}
372+
373+
driver.executeCdpCommand("Emulation.setDeviceMetricsOverride", deviceMetrics)
374+
driver.get("https://www.google.com")
375+
driver.quit()
376+
}
344377
{{< / code-panel >}}
345378
{{< / code-tab >}}

docs_source_files/content/support_packages/chrome_devtools.fr.md

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,25 @@ let element = driver.findElement({id: 'throwing-mouseover'})
236236
await element.click()
237237
{{< / code-panel >}}
238238
{{< code-panel language="kotlin" >}}
239-
# Please raise a PR to add code sample
239+
fun kotlinJsErrorListener() {
240+
val driver = ChromeDriver()
241+
val devTools = driver.devTools
242+
devTools.createSession()
243+
244+
val logJsError = { j: JavascriptException -> print("Javascript error: '" + j.localizedMessage + "'.") }
245+
devTools.domains.events().addJavascriptExceptionListener(logJsError)
246+
247+
driver.get("https://www.google.com")
248+
249+
val link2click = driver.findElement(By.name("q"))
250+
(driver as JavascriptExecutor).executeScript(
251+
"arguments[0].setAttribute(arguments[1], arguments[2]);",
252+
link2click, "onclick", "throw new Error('Hello, world!')"
253+
)
254+
link2click.click()
255+
256+
driver.quit()
257+
}
240258
{{< / code-panel >}}
241259
{{< / code-tab >}}
242260

@@ -340,6 +358,21 @@ public void deviceSimulationTest() {
340358
# Please raise a PR to add code sample
341359
{{< / code-panel >}}
342360
{{< code-panel language="kotlin" >}}
343-
# Please raise a PR to add code sample
361+
fun kotlinOverridDeviceMode() {
362+
val driver = ChromeDriver()
363+
364+
val deviceMetrics: Map<String, Any> = object : HashMap<String, Any>() {
365+
init {
366+
put("width", 600)
367+
put("height", 1000)
368+
put("mobile", true)
369+
put("deviceScaleFactor", 50)
370+
}
371+
}
372+
373+
driver.executeCdpCommand("Emulation.setDeviceMetricsOverride", deviceMetrics)
374+
driver.get("https://www.google.com")
375+
driver.quit()
376+
}
344377
{{< / code-panel >}}
345378
{{< / code-tab >}}

docs_source_files/content/support_packages/chrome_devtools.ja.md

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,25 @@ let element = driver.findElement({id: 'throwing-mouseover'})
240240
await element.click()
241241
{{< / code-panel >}}
242242
{{< code-panel language="kotlin" >}}
243-
# Please raise a PR to add code sample
243+
fun kotlinJsErrorListener() {
244+
val driver = ChromeDriver()
245+
val devTools = driver.devTools
246+
devTools.createSession()
247+
248+
val logJsError = { j: JavascriptException -> print("Javascript error: '" + j.localizedMessage + "'.") }
249+
devTools.domains.events().addJavascriptExceptionListener(logJsError)
250+
251+
driver.get("https://www.google.com")
252+
253+
val link2click = driver.findElement(By.name("q"))
254+
(driver as JavascriptExecutor).executeScript(
255+
"arguments[0].setAttribute(arguments[1], arguments[2]);",
256+
link2click, "onclick", "throw new Error('Hello, world!')"
257+
)
258+
link2click.click()
259+
260+
driver.quit()
261+
}
244262
{{< / code-panel >}}
245263
{{< / code-tab >}}
246264

@@ -344,6 +362,21 @@ public void deviceSimulationTest() {
344362
# Please raise a PR to add code sample
345363
{{< / code-panel >}}
346364
{{< code-panel language="kotlin" >}}
347-
# Please raise a PR to add code sample
365+
fun kotlinOverridDeviceMode() {
366+
val driver = ChromeDriver()
367+
368+
val deviceMetrics: Map<String, Any> = object : HashMap<String, Any>() {
369+
init {
370+
put("width", 600)
371+
put("height", 1000)
372+
put("mobile", true)
373+
put("deviceScaleFactor", 50)
374+
}
375+
}
376+
377+
driver.executeCdpCommand("Emulation.setDeviceMetricsOverride", deviceMetrics)
378+
driver.get("https://www.google.com")
379+
driver.quit()
380+
}
348381
{{< / code-panel >}}
349382
{{< / code-tab >}}

docs_source_files/content/support_packages/chrome_devtools.ko.md

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,25 @@ let element = driver.findElement({id: 'throwing-mouseover'})
236236
await element.click()
237237
{{< / code-panel >}}
238238
{{< code-panel language="kotlin" >}}
239-
# Please raise a PR to add code sample
239+
fun kotlinJsErrorListener() {
240+
val driver = ChromeDriver()
241+
val devTools = driver.devTools
242+
devTools.createSession()
243+
244+
val logJsError = { j: JavascriptException -> print("Javascript error: '" + j.localizedMessage + "'.") }
245+
devTools.domains.events().addJavascriptExceptionListener(logJsError)
246+
247+
driver.get("https://www.google.com")
248+
249+
val link2click = driver.findElement(By.name("q"))
250+
(driver as JavascriptExecutor).executeScript(
251+
"arguments[0].setAttribute(arguments[1], arguments[2]);",
252+
link2click, "onclick", "throw new Error('Hello, world!')"
253+
)
254+
link2click.click()
255+
256+
driver.quit()
257+
}
240258
{{< / code-panel >}}
241259
{{< / code-tab >}}
242260

@@ -340,6 +358,21 @@ public void deviceSimulationTest() {
340358
# Please raise a PR to add code sample
341359
{{< / code-panel >}}
342360
{{< code-panel language="kotlin" >}}
343-
# Please raise a PR to add code sample
361+
fun kotlinOverridDeviceMode() {
362+
val driver = ChromeDriver()
363+
364+
val deviceMetrics: Map<String, Any> = object : HashMap<String, Any>() {
365+
init {
366+
put("width", 600)
367+
put("height", 1000)
368+
put("mobile", true)
369+
put("deviceScaleFactor", 50)
370+
}
371+
}
372+
373+
driver.executeCdpCommand("Emulation.setDeviceMetricsOverride", deviceMetrics)
374+
driver.get("https://www.google.com")
375+
driver.quit()
376+
}
344377
{{< / code-panel >}}
345378
{{< / code-tab >}}

0 commit comments

Comments
 (0)