-
Notifications
You must be signed in to change notification settings - Fork 1
/
CdpUtils.groovy
58 lines (38 loc) · 1.41 KB
/
CdpUtils.groovy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package com.katalon.cdp
import org.openqa.selenium.HasCapabilities
import org.openqa.selenium.WebDriver
import com.github.kklisura.cdt.services.ChromeDevToolsService
import com.github.kklisura.cdt.services.ChromeService
import com.github.kklisura.cdt.services.impl.ChromeServiceImpl
import com.github.kklisura.cdt.services.types.ChromeTab
import com.kms.katalon.core.webui.driver.DriverFactory
/**
* Original:
* https://github.com/katalon-studio/katalon-studio-chrome-devtools-protocol-plugin/blob/master/Include/scripts/groovy/com/katalon/cdp/CdpUtils.groovy
*/
public class CdpUtils {
public static String[] getServiceEndpoint() {
WebDriver driver = DriverFactory.getWebDriver()
HasCapabilities hc = ((driver) as HasCapabilities)
Map<?, ?> m = hc.getCapabilities().asMap()
m = m.get('goog:chromeOptions')
String da = m.get('debuggerAddress')
String[] daElements = da.split(':')
return daElements
}
public static ChromeDevToolsService getService() {
WebDriver driver = DriverFactory.getWebDriver()
String[] daElements = getServiceEndpoint()
String host = daElements[0]
int port = Integer.parseInt(daElements[1])
ChromeService cs = new ChromeServiceImpl(host, port)
ChromeTab t = cs.getTabs().find({
ChromeTab tab = ((it) as ChromeTab)
if (tab.getUrl().equals(driver.getCurrentUrl())) {
return tab
}
})
ChromeDevToolsService cdts = cs.createDevToolsService(t)
return cdts
}
}