Package io.github.bonigarcia.wdm
Class WebDriverManager
- java.lang.Object
-
- io.github.bonigarcia.wdm.WebDriverManager
-
- Direct Known Subclasses:
ChromeDriverManager
,EdgeDriverManager
,FirefoxDriverManager
,InternetExplorerDriverManager
,OperaDriverManager
,VoidDriverManager
public abstract class WebDriverManager extends Object
Parent driver manager.- Since:
- 2.1.0
- Author:
- Boni Garcia
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
androidEnabled
protected static String
BROWSER_WATCHER_ID
protected CacheHandler
cacheHandler
protected org.openqa.selenium.Capabilities
capabilities
protected static String
CFT_LABEL
protected static String
CLI_DOCKER
protected static String
CLI_RESOLVER
protected static String
CLI_SERVER
protected Config
config
protected static String
DASH
protected boolean
disableCsp
protected boolean
displayEnabled
protected boolean
dockerEnabled
protected DockerService
dockerService
protected String
downloadedDriverPath
protected String
downloadedDriverVersion
protected Downloader
downloader
protected HttpClient
httpClient
protected static String
IN_DOCKER
protected boolean
isHeadless
protected static String
LATEST_RELEASE
protected static org.slf4j.Logger
log
protected ResolutionCache
resolutionCache
protected String
resolvedBrowserVersion
protected int
retryCount
protected static NamespaceContext
S3_NAMESPACE_CONTEXT
protected boolean
shutdownHook
protected static String
SLASH
protected VersionDetector
versionDetector
protected boolean
watchEnabled
protected WebDriverCreator
webDriverCreator
protected List<WebDriverBrowser>
webDriverList
-
Constructor Summary
Constructors Modifier Constructor Description protected
WebDriverManager()
-
Method Summary
-
-
-
Field Detail
-
log
protected static final org.slf4j.Logger log
-
SLASH
protected static final String SLASH
- See Also:
- Constant Field Values
-
DASH
protected static final String DASH
- See Also:
- Constant Field Values
-
LATEST_RELEASE
protected static final String LATEST_RELEASE
- See Also:
- Constant Field Values
-
CFT_LABEL
protected static final String CFT_LABEL
- See Also:
- Constant Field Values
-
S3_NAMESPACE_CONTEXT
protected static final NamespaceContext S3_NAMESPACE_CONTEXT
-
IN_DOCKER
protected static final String IN_DOCKER
- See Also:
- Constant Field Values
-
CLI_SERVER
protected static final String CLI_SERVER
- See Also:
- Constant Field Values
-
CLI_RESOLVER
protected static final String CLI_RESOLVER
- See Also:
- Constant Field Values
-
CLI_DOCKER
protected static final String CLI_DOCKER
- See Also:
- Constant Field Values
-
BROWSER_WATCHER_ID
protected static final String BROWSER_WATCHER_ID
- See Also:
- Constant Field Values
-
config
protected Config config
-
httpClient
protected HttpClient httpClient
-
downloader
protected Downloader downloader
-
resolutionCache
protected ResolutionCache resolutionCache
-
cacheHandler
protected CacheHandler cacheHandler
-
versionDetector
protected VersionDetector versionDetector
-
webDriverCreator
protected WebDriverCreator webDriverCreator
-
dockerService
protected DockerService dockerService
-
retryCount
protected int retryCount
-
capabilities
protected org.openqa.selenium.Capabilities capabilities
-
shutdownHook
protected boolean shutdownHook
-
dockerEnabled
protected boolean dockerEnabled
-
androidEnabled
protected boolean androidEnabled
-
watchEnabled
protected boolean watchEnabled
-
displayEnabled
protected boolean displayEnabled
-
disableCsp
protected boolean disableCsp
-
isHeadless
protected boolean isHeadless
-
webDriverList
protected List<WebDriverBrowser> webDriverList
-
resolvedBrowserVersion
protected String resolvedBrowserVersion
-
downloadedDriverVersion
protected String downloadedDriverVersion
-
downloadedDriverPath
protected String downloadedDriverPath
-
-
Method Detail
-
getDriverUrls
protected abstract List<URL> getDriverUrls(String driverVersion) throws IOException
- Throws:
IOException
-
getDriverName
protected abstract String getDriverName()
-
getDriverVersion
protected abstract String getDriverVersion()
-
setDriverVersion
protected abstract void setDriverVersion(String driverVersion)
-
getBrowserVersion
protected abstract String getBrowserVersion()
-
setBrowserVersion
protected abstract void setBrowserVersion(String browserVersion)
-
setDriverUrl
protected abstract void setDriverUrl(URL url)
-
getDriverUrl
protected abstract URL getDriverUrl()
-
getDriverManagerType
public abstract DriverManagerType getDriverManagerType()
-
exportParameter
public abstract WebDriverManager exportParameter(String exportParameter)
-
config
public Config config()
-
chromedriver
public static WebDriverManager chromedriver()
-
chromiumdriver
public static WebDriverManager chromiumdriver()
-
firefoxdriver
public static WebDriverManager firefoxdriver()
-
operadriver
public static WebDriverManager operadriver()
-
edgedriver
public static WebDriverManager edgedriver()
-
iedriver
public static WebDriverManager iedriver()
-
safaridriver
public static WebDriverManager safaridriver()
-
voiddriver
protected static WebDriverManager voiddriver()
-
getInstance
public static WebDriverManager getInstance(DriverManagerType driverManagerType)
-
getInstance
public static WebDriverManager getInstance(String browserName)
-
getInstance
public static WebDriverManager getInstance(Class<? extends org.openqa.selenium.WebDriver> webDriverClass)
-
getDriver
protected static WebDriverManager getDriver(String webDriverClass)
-
getInstance
public static WebDriverManager getInstance()
-
isDockerAvailable
public static boolean isDockerAvailable()
-
isOnline
public static boolean isOnline(String url)
-
isOnline
public static boolean isOnline(URL url)
-
setup
public void setup()
-
create
public org.openqa.selenium.WebDriver create()
-
create
public List<org.openqa.selenium.WebDriver> create(int numberOfBrowser)
-
browserInDocker
public WebDriverManager browserInDocker()
-
isUsingDocker
protected boolean isUsingDocker()
-
browserInDockerAndroid
public WebDriverManager browserInDockerAndroid()
-
dockerEnvVariables
public WebDriverManager dockerEnvVariables(String... defaultEnvs)
-
dockerDefaultArgs
public WebDriverManager dockerDefaultArgs(String defaultArgs)
-
dockerDaemonUrl
public WebDriverManager dockerDaemonUrl(String daemonUrl)
-
dockerNetwork
public WebDriverManager dockerNetwork(String network)
-
dockerNetworkHost
public WebDriverManager dockerNetworkHost()
-
dockerTimezone
public WebDriverManager dockerTimezone(String timezone)
-
dockerLang
public WebDriverManager dockerLang(String lang)
-
dockerShmSize
public WebDriverManager dockerShmSize(String size)
-
dockerTmpfsSize
public WebDriverManager dockerTmpfsSize(String size)
-
dockerTmpfsMount
public WebDriverManager dockerTmpfsMount(String mount)
-
dockerVolumes
public WebDriverManager dockerVolumes(String... volumes)
-
dockerExtraHosts
public WebDriverManager dockerExtraHosts(String... hosts)
-
dockerScreenResolution
public WebDriverManager dockerScreenResolution(String screenResolution)
-
dockerRecordingFrameRate
public WebDriverManager dockerRecordingFrameRate(int frameRate)
-
dockerAvoidPulling
public WebDriverManager dockerAvoidPulling()
-
avoidDockerLocalFallback
public WebDriverManager avoidDockerLocalFallback()
-
avoidShutdownHook
public WebDriverManager avoidShutdownHook()
-
avoidExternalConnections
public WebDriverManager avoidExternalConnections()
-
enableVnc
public WebDriverManager enableVnc()
-
viewOnly
public WebDriverManager viewOnly()
-
enableRecording
public WebDriverManager enableRecording()
-
disableTracing
public WebDriverManager disableTracing()
-
dockerRecordingPrefix
public WebDriverManager dockerRecordingPrefix(String prefix)
-
dockerRecordingOutput
public WebDriverManager dockerRecordingOutput(String path)
-
dockerRecordingOutput
public WebDriverManager dockerRecordingOutput(Path path)
-
dockerPrivateEndpoint
public WebDriverManager dockerPrivateEndpoint(String endpoint)
-
dockerStopTimeoutSec
public WebDriverManager dockerStopTimeoutSec(Integer timeout)
-
watch
public WebDriverManager watch()
-
watchAndDisplay
public WebDriverManager watchAndDisplay()
-
disableCsp
public WebDriverManager disableCsp()
-
capabilities
public WebDriverManager capabilities(org.openqa.selenium.Capabilities capabilities)
-
remoteAddress
public WebDriverManager remoteAddress(String remoteAddress)
-
remoteAddress
public WebDriverManager remoteAddress(URL remoteAddress)
-
dockerCustomImage
public WebDriverManager dockerCustomImage(String dockerImage)
-
driverVersion
public WebDriverManager driverVersion(String driverVersion)
-
browserVersion
public WebDriverManager browserVersion(String browserVersion)
-
architecture
public WebDriverManager architecture(Architecture architecture)
-
arch32
public WebDriverManager arch32()
-
arch64
public WebDriverManager arch64()
-
arm64
public WebDriverManager arm64()
-
win
public WebDriverManager win()
-
linux
public WebDriverManager linux()
-
mac
public WebDriverManager mac()
-
operatingSystem
public WebDriverManager operatingSystem(OperatingSystem os)
-
forceDownload
public WebDriverManager forceDownload()
-
driverRepositoryUrl
public WebDriverManager driverRepositoryUrl(URL url)
-
useMirror
public WebDriverManager useMirror()
-
proxy
public WebDriverManager proxy(String proxy)
-
proxyUser
public WebDriverManager proxyUser(String proxyUser)
-
proxyPass
public WebDriverManager proxyPass(String proxyPass)
-
useBetaVersions
public WebDriverManager useBetaVersions()
-
ignoreDriverVersions
public WebDriverManager ignoreDriverVersions(String... driverVersions)
-
gitHubToken
public WebDriverManager gitHubToken(String gitHubToken)
-
timeout
public WebDriverManager timeout(int timeout)
-
properties
public WebDriverManager properties(String properties)
-
cachePath
public WebDriverManager cachePath(String cachePath)
-
resolutionCachePath
public WebDriverManager resolutionCachePath(String resolutionCachePath)
-
avoidExport
public WebDriverManager avoidExport()
-
avoidOutputTree
public WebDriverManager avoidOutputTree()
-
avoidBrowserDetection
public WebDriverManager avoidBrowserDetection()
-
avoidResolutionCache
public WebDriverManager avoidResolutionCache()
-
avoidFallback
public WebDriverManager avoidFallback()
-
avoidReadReleaseFromRepository
public WebDriverManager avoidReadReleaseFromRepository()
-
avoidTmpFolder
public WebDriverManager avoidTmpFolder()
-
avoidUseChromiumDriverSnap
public WebDriverManager avoidUseChromiumDriverSnap()
-
ttl
public WebDriverManager ttl(int seconds)
-
ttlBrowsers
public WebDriverManager ttlBrowsers(int seconds)
-
browserVersionDetectionCommand
public WebDriverManager browserVersionDetectionCommand(String browserVersionCommand)
-
useLocalVersionsPropertiesFirst
public WebDriverManager useLocalVersionsPropertiesFirst()
-
useLocalCommandsPropertiesFirst
public WebDriverManager useLocalCommandsPropertiesFirst()
-
versionsPropertiesUrl
public WebDriverManager versionsPropertiesUrl(URL url)
-
commandsPropertiesUrl
public WebDriverManager commandsPropertiesUrl(URL url)
-
clearResolutionCache
public WebDriverManager clearResolutionCache()
-
clearDriverCache
public WebDriverManager clearDriverCache()
-
browserVersionDetectionRegex
public WebDriverManager browserVersionDetectionRegex(String regex)
-
reset
public void reset()
-
getDownloadedDriverPath
public String getDownloadedDriverPath()
-
getDownloadedDriverVersion
public String getDownloadedDriverVersion()
-
getWebDriver
public org.openqa.selenium.WebDriver getWebDriver()
-
getWebDriverList
public List<org.openqa.selenium.WebDriver> getWebDriverList()
-
quit
public void quit()
-
quit
public void quit(org.openqa.selenium.WebDriver driver)
-
stopDockerRecording
public void stopDockerRecording()
-
stopDockerRecording
public void stopDockerRecording(org.openqa.selenium.WebDriver driver)
-
stopDockerRecording
protected void stopDockerRecording(WebDriverBrowser driverBrowser)
-
quit
protected void quit(WebDriverBrowser driverBrowser)
-
getDockerBrowserContainerId
public String getDockerBrowserContainerId(org.openqa.selenium.WebDriver driver)
-
getDockerBrowserContainerId
public String getDockerBrowserContainerId()
-
getDockerSeleniumServerUrl
public URL getDockerSeleniumServerUrl(org.openqa.selenium.WebDriver driver)
-
getDockerSeleniumServerUrl
public URL getDockerSeleniumServerUrl()
-
getDockerNoVncUrl
public URL getDockerNoVncUrl(org.openqa.selenium.WebDriver driver)
-
getDockerNoVncUrl
public URL getDockerNoVncUrl()
-
getDockerVncUrl
public String getDockerVncUrl(org.openqa.selenium.WebDriver driver)
-
getDockerVncUrl
public String getDockerVncUrl()
-
getDockerRecordingPath
public Path getDockerRecordingPath(org.openqa.selenium.WebDriver driver)
-
getDockerRecordingPath
public Path getDockerRecordingPath()
-
startRecording
public void startRecording(org.openqa.selenium.WebDriver driver)
-
startRecording
public void startRecording()
-
startRecording
public void startRecording(org.openqa.selenium.WebDriver driver, String recordingName)
-
startRecording
public void startRecording(String recordingName)
-
stopRecording
public void stopRecording(org.openqa.selenium.WebDriver driver)
-
stopRecording
public void stopRecording()
-
getDockerService
public DockerService getDockerService()
-
exportParameter
public WebDriverManager exportParameter(DriverManagerType driverManagerType)
-
getPropertyFromWebDriverBrowser
protected Object getPropertyFromWebDriverBrowser(org.openqa.selenium.WebDriver driver, Function<WebDriverBrowser,Object> function)
-
findWebDriverBrowser
protected Optional<WebDriverBrowser> findWebDriverBrowser(org.openqa.selenium.WebDriver driver)
-
getPropertyFromFirstWebDriverBrowser
protected Object getPropertyFromFirstWebDriverBrowser(Function<WebDriverBrowser,Object> function)
-
manage
protected void manage(String driverVersion)
-
download
protected String download(String driverVersion) throws IOException
- Throws:
IOException
-
exportDriver
protected void exportDriver(String variableValue)
-
storeInResolutionCache
protected void storeInResolutionCache(String preferenceKey, String resolvedDriverVersion, String resolvedBrowserVersion)
-
getValueFromResolutionCache
protected Optional<String> getValueFromResolutionCache(String preferenceKey)
-
useResolutionCacheWithKey
protected boolean useResolutionCacheWithKey(String key)
-
useResolutionCache
protected boolean useResolutionCache()
-
isUnknown
protected boolean isUnknown(String driverVersion)
-
isUseMirror
protected boolean isUseMirror()
-
createUrlHandler
protected UrlHandler createUrlHandler(String driverVersion) throws IOException
- Throws:
IOException
-
getDriversFromMirror
protected List<URL> getDriversFromMirror(URL driverUrl, String driverVersion) throws IOException
- Throws:
IOException
-
getNamespaceContext
protected NamespaceContext getNamespaceContext()
-
getS3NamespaceContext
protected Optional<NamespaceContext> getS3NamespaceContext()
-
getDriversFromXml
protected List<URL> getDriversFromXml(URL driverUrl, String xpath, Optional<NamespaceContext> namespaceContext) throws IOException
- Throws:
IOException
-
logSeekRepo
protected void logSeekRepo(URL driverUrl)
-
loadXML
public static Document loadXML(InputStream inputStream) throws SAXException, IOException, ParserConfigurationException
-
openGitHubConnection
protected InputStream openGitHubConnection(URL driverUrl) throws IOException
- Throws:
IOException
-
getDriversFromGitHub
protected List<URL> getDriversFromGitHub(String driverVersion) throws IOException
- Throws:
IOException
-
getHttpClient
protected HttpClient getHttpClient()
-
getResolutionCache
protected ResolutionCache getResolutionCache()
-
getVersionDetector
protected VersionDetector getVersionDetector()
-
getWebDriverCreator
protected WebDriverCreator getWebDriverCreator()
-
getFolderFilter
protected FilenameFilter getFolderFilter()
-
getVersionCharset
protected Charset getVersionCharset()
-
getLatestVersionLabel
protected String getLatestVersionLabel()
-
getDriverVersionFromRepository
protected Optional<String> getDriverVersionFromRepository(Optional<String> driverVersion)
-
getLatestDriverVersionFromRepository
protected Optional<String> getLatestDriverVersionFromRepository()
-
getShortDriverName
protected String getShortDriverName()
-
getKeyForResolutionCache
protected String getKeyForResolutionCache()
-
instantiateDriver
protected org.openqa.selenium.WebDriver instantiateDriver()
-
initBrowserWatcherForChromium
protected void initBrowserWatcherForChromium(Path extensionPath, org.openqa.selenium.Capabilities caps)
-
getBrowserWatcherAsPath
protected Path getBrowserWatcherAsPath() throws IOException
- Throws:
IOException
-
getMergedCapabilities
protected org.openqa.selenium.Capabilities getMergedCapabilities()
-
addShutdownHookIfRequired
protected void addShutdownHookIfRequired()
-
createDockerWebDriver
protected org.openqa.selenium.WebDriver createDockerWebDriver()
-
createLocalWebDriver
protected org.openqa.selenium.WebDriver createLocalWebDriver() throws ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException
-
getCapabilities
protected org.openqa.selenium.Capabilities getCapabilities()
-
addDefaultArgumentsForDocker
protected void addDefaultArgumentsForDocker(org.openqa.selenium.Capabilities options) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException
-
logCliError
protected static void logCliError(String browserForResolving, String browserForDocker, int port)
-
startServer
protected static void startServer(String[] args, int port)
-
main
public static void main(String[] args)
-
-