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 CacheHandler
cacheHandler
protected org.openqa.selenium.Capabilities
capabilities
protected static String
CLI_DOCKER
protected static String
CLI_RESOLVER
protected static String
CLI_SERVER
protected Config
config
protected boolean
dockerEnabled
protected DockerService
dockerService
protected String
downloadedDriverPath
protected String
downloadedDriverVersion
protected Downloader
downloader
protected boolean
forcedArch
protected HttpClient
httpClient
protected static String
IN_DOCKER
protected static String
LATEST_RELEASE
protected static org.slf4j.Logger
log
protected boolean
mirrorLog
protected ResolutionCache
resolutionCache
protected int
retryCount
protected static NamespaceContext
S3_NAMESPACE_CONTEXT
protected boolean
shutdownHook
protected static String
SLASH
protected VersionDetector
versionDetector
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
-
LATEST_RELEASE
protected static final String LATEST_RELEASE
- 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
-
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
-
mirrorLog
protected boolean mirrorLog
-
forcedArch
protected boolean forcedArch
-
retryCount
protected int retryCount
-
capabilities
protected org.openqa.selenium.Capabilities capabilities
-
shutdownHook
protected boolean shutdownHook
-
dockerEnabled
protected boolean dockerEnabled
-
androidEnabled
protected boolean androidEnabled
-
webDriverList
protected List<WebDriverBrowser> webDriverList
-
downloadedDriverVersion
protected String downloadedDriverVersion
-
downloadedDriverPath
protected String downloadedDriverPath
-
-
Method Detail
-
getDriverUrls
protected abstract List<URL> getDriverUrls() 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()
-
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<?> webDriverClass)
-
getDriver
protected static WebDriverManager getDriver(String webDriverClass)
-
getInstance
public static WebDriverManager getInstance()
-
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()
-
browserInDockerAndroid
public WebDriverManager browserInDockerAndroid()
-
dockerDaemonUrl
public WebDriverManager dockerDaemonUrl(String daemonUrl)
-
dockerNetwork
public WebDriverManager dockerNetwork(String network)
-
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)
-
dockerVolume
public WebDriverManager dockerVolume(String volume)
-
dockerScreenResolution
public WebDriverManager dockerScreenResolution(String screenResolution)
-
dockerRecordingFrameRate
public WebDriverManager dockerRecordingFrameRate(int frameRate)
-
enableVnc
public WebDriverManager enableVnc()
-
enableRecording
public WebDriverManager enableRecording()
-
recordingPrefix
public WebDriverManager recordingPrefix(String prefix)
-
recordingOutput
public WebDriverManager recordingOutput(String path)
-
recordingOutput
public WebDriverManager recordingOutput(Path path)
-
capabilities
public WebDriverManager capabilities(org.openqa.selenium.Capabilities capabilities)
-
remoteAddress
public WebDriverManager remoteAddress(String remoteAddress)
-
dockerImage
public WebDriverManager dockerImage(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()
-
getDockerRecordingPath
public Path getDockerRecordingPath(org.openqa.selenium.WebDriver driver)
-
getDockerRecordingPath
public Path getDockerRecordingPath()
-
getDockerService
public DockerService getDockerService()
-
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)
-
createUrlHandler
protected UrlHandler createUrlHandler(String driverVersion) throws IOException
- Throws:
IOException
-
getDriversFromMirror
protected List<URL> getDriversFromMirror(URL driverUrl) throws IOException
This method works also for http://npm.taobao.org/ and https://bitbucket.org/ mirrors.- 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
protected Document loadXML(InputStream inputStream) throws SAXException, IOException, ParserConfigurationException
-
openGitHubConnection
protected InputStream openGitHubConnection(URL driverUrl) throws IOException
- Throws:
IOException
-
getDriversFromGitHub
protected List<URL> getDriversFromGitHub() throws IOException
- Throws:
IOException
-
getHttpClient
protected HttpClient getHttpClient()
-
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()
-
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)
-
-