From b42cb45a40fd7635958bd43d901d2f235438f3ba Mon Sep 17 00:00:00 2001
From: Mykola Mokhnach
Date: Sun, 11 Oct 2026 20:50:33 +0200
Subject: [PATCH 1/2] fix: align options with the current driver capabilities
Fixes:
- safari: use `safari:deviceUDID` (the driver ignores `deviceUdid`)
- gecko: use its own SupportsSystemPortOption instead of the Mac2 one
- treat `userAgent` as a standard W3C capability (no `appium:` prefix)
- windows: add `getAppArguments()`; keep the misnamed `setAppArguments()` deprecated
- espresso: add `set/getEspressoServerLaunchTimeout`; keep the old
`*Uiautomator2ServerInstallTimeout` accessors deprecated
- xcuitest: add `set/getWebkitResponseTimeout` to the webview option
Deprecated (no longer defined or read by the drivers):
- xcuitest: appInstallStrategy, launchWithIDB, calendarAccessAuthorized,
simpleIsVisibleCheck, waitForQuiescence, useSimpleBuildTest,
includeDeviceCapsToSessionInfo, webkitResponseTimeout
- base: eventTimings
- android: skipLogCapture (use skipLogcatCapture), clearSystemFiles,
enablePerformanceLogging; Espresso mjpegServerPort/mjpegScreenshotUrl
Docs: correct defaults, descriptions, copy-pasted Javadoc and stale links
across the options classes. Driver sources were taken from the local
checkouts, including the unreleased `caps` branches of the Android and
XCUITest drivers.
Co-Authored-By: Claude Sonnet 5.5
---
.../android/options/EspressoOptions.java | 126 ++++++++++++++++--
.../android/options/UiAutomator2Options.java | 112 ++++++++++++++++
.../adb/SupportsBuildToolsVersionOption.java | 2 +-
.../SupportsClearDeviceLogsOnStartOption.java | 6 +-
...portsIgnoreHiddenApiPolicyErrorOption.java | 2 +-
.../adb/SupportsMockLocationAppOption.java | 6 +-
.../adb/SupportsRemoteAdbHostOption.java | 2 +-
.../adb/SupportsSkipLogcatCaptureOption.java | 5 +-
.../adb/SupportsSuppressKillServerOption.java | 2 +-
.../app/SupportsAppActivityOption.java | 2 +-
.../options/app/SupportsAppPackageOption.java | 2 +-
.../app/SupportsAppWaitDurationOption.java | 6 +-
.../app/SupportsIntentActionOption.java | 1 +
.../app/SupportsIntentCategoryOption.java | 1 +
.../app/SupportsIntentFlagsOption.java | 1 +
.../SupportsChromedriverPortsOption.java | 1 +
.../SupportsNativeWebScreenshotOption.java | 4 +-
.../SupportsLocaleScriptOption.java | 8 +-
.../locking/SupportsSkipUnlockOption.java | 2 +-
.../locking/SupportsUnlockKeyOption.java | 2 +-
.../locking/SupportsUnlockStrategyOption.java | 2 +-
.../locking/SupportsUnlockTypeOption.java | 2 +-
.../mjpeg/SupportsMjpegServerPortOption.java | 4 +-
.../options/server/EspressoBuildConfig.java | 4 +-
...ortsEspressoServerLaunchTimeoutOption.java | 29 +++-
.../chromium/options/ChromiumOptions.java | 4 +-
.../options/SupportsAutodownloadOption.java | 5 +-
.../options/SupportsBuildCheckOption.java | 5 +-
.../SupportsChromeDrivePortOption.java | 4 +-
.../options/SupportsExecutableDirOption.java | 11 +-
.../options/SupportsExecutableOption.java | 8 +-
.../options/SupportsLogPathOption.java | 6 +-
.../SupportsUseSystemExecutableOption.java | 8 +-
.../options/SupportsVerboseOption.java | 5 +-
...portsFlutterServerLaunchTimeoutOption.java | 2 +-
.../SupportsFlutterSystemPortOption.java | 3 +-
.../gecko/options/GeckoOptions.java | 3 +-
.../options/SupportsAndroidStorageOption.java | 3 +-
.../options/SupportsMarionettePortOption.java | 4 +-
.../options/SupportsSystemPortOption.java | 4 +-
.../ios/options/XCUITestOptions.java | 1 +
.../app/SupportsAppInstallStrategyOption.java | 2 +
.../app/SupportsAppPushTimeoutOption.java | 2 +-
...sIncludeDeviceCapsToSessionInfoOption.java | 2 +
.../other/SupportsLaunchWithIdbOption.java | 2 +
...upportsCalendarAccessAuthorizedOption.java | 2 +
.../SupportsCustomSslCertOption.java | 5 +-
.../simulator/SupportsScaleFactorOption.java | 5 +-
.../SupportsWebkitResponseTimeoutOption.java | 3 +
.../wda/SupportsScreenshotQualityOption.java | 12 +-
.../SupportsSimpleIsVisibleCheckOption.java | 2 +
.../wda/SupportsUsePrebuiltWdaOption.java | 3 +-
.../wda/SupportsUsePreinstalledWdaOption.java | 4 +-
.../wda/SupportsUseSimpleBuildTestOption.java | 2 +
.../wda/SupportsWaitForQuiescenceOption.java | 3 +
.../wda/SupportsWdaStartupRetriesOption.java | 3 +-
.../SupportsNativeWebTapStrictOption.java | 11 +-
.../SupportsSafariAllowPopupsOption.java | 4 +-
...upportsSafariIgnoreFraudWarningOption.java | 3 +-
.../SupportsSafariInitialUrlOption.java | 3 +-
...ortsSafariOpenLinksInBackgroundOption.java | 3 +-
.../SupportsWebkitResponseTimeoutOption.java | 33 ++++-
.../SupportsWebviewConnectRetriesOption.java | 2 +-
.../SupportsWebviewConnectTimeoutOption.java | 2 +-
.../java_client/mac/options/Mac2Options.java | 8 +-
.../mac/options/SupportsArgumentsOption.java | 2 +-
.../options/SupportsEnvironmentOption.java | 4 +-
.../options/SupportsShowServerLogsOption.java | 6 +-
...upportsEnablePerformanceLoggingOption.java | 12 +-
.../SupportsEnforceAppInstallOption.java | 3 +-
.../options/SupportsEventTimingsOption.java | 2 +
.../options/SupportsFullResetOption.java | 4 +-
.../SupportsNewCommandTimeoutOption.java | 2 +-
.../remote/options/SupportsNoResetOption.java | 4 +-
.../options/SupportsOtherAppsOption.java | 2 +-
.../options/SupportsSkipLogCaptureOption.java | 7 +-
...SupportsUnhandledPromptBehaviorOption.java | 8 +-
.../remote/options/W3CCapabilityKeys.java | 1 +
...upportsSafariAutomaticProfilingOption.java | 2 +-
.../SupportsSafariDeviceUdidOption.java | 6 +-
.../options/SupportsAppArgumentsOption.java | 11 ++
.../SupportsMsWaitForAppLaunchOption.java | 2 +-
.../windows/options/WindowsOptions.java | 3 +
83 files changed, 459 insertions(+), 153 deletions(-)
diff --git a/src/main/java/io/appium/java_client/android/options/EspressoOptions.java b/src/main/java/io/appium/java_client/android/options/EspressoOptions.java
index 86a8a6955..c4316915f 100644
--- a/src/main/java/io/appium/java_client/android/options/EspressoOptions.java
+++ b/src/main/java/io/appium/java_client/android/options/EspressoOptions.java
@@ -98,19 +98,21 @@
import io.appium.java_client.remote.options.SupportsUdidOption;
import org.openqa.selenium.Capabilities;
+import java.net.URL;
import java.util.Map;
+import java.util.Optional;
/**
* Provides options specific to the Espresso Driver.
*
* For more details, refer to the
- * capabilities documentation
+ * capabilities documentation
*/
public class EspressoOptions extends BaseOptions implements
- // General options: https://github.com/appium/appium-uiautomator2-driver#general
+ // General options: https://appium.github.io/appium-espresso-driver/latest/reference/capabilities/#general
SupportsDeviceNameOption,
SupportsUdidOption,
- // Driver/Server options: https://github.com/appium/appium-uiautomator2-driver#driverserver
+ // Driver/Server options: https://appium.github.io/appium-espresso-driver/latest/reference/capabilities/#espresso-server
SupportsSystemPortOption,
SupportsSkipServerInstallationOption,
SupportsEspressoServerLaunchTimeoutOption,
@@ -118,7 +120,7 @@ public class EspressoOptions extends BaseOptions implements
SupportsShowGradleLogOption,
SupportsOrientationOption,
SupportsEspressoBuildConfigOption,
- // App options: https://github.com/appium/appium-uiautomator2-driver#app
+ // App options: https://appium.github.io/appium-espresso-driver/latest/reference/capabilities/#app-management
SupportsAppOption,
SupportsAppPackageOption,
SupportsAppActivityOption,
@@ -134,12 +136,12 @@ public class EspressoOptions extends BaseOptions implements
SupportsAllowTestPackagesOption,
SupportsRemoteAppsCacheLimitOption,
SupportsEnforceAppInstallOption,
- // App localization options: https://github.com/appium/appium-uiautomator2-driver#app-localization
+ // App localization options: https://appium.github.io/appium-espresso-driver/latest/reference/capabilities/#app-localization
SupportsLocaleScriptOption,
SupportsLanguageOption,
SupportsLocaleOption,
SupportsAppLocaleOption,
- // ADB options: https://github.com/appium/appium-uiautomator2-driver#adb
+ // ADB options: https://appium.github.io/appium-espresso-driver/latest/reference/capabilities/#adb
SupportsAdbPortOption,
SupportsRemoteAdbHostOption,
SupportsAdbExecTimeoutOption,
@@ -152,7 +154,7 @@ public class EspressoOptions extends BaseOptions implements
SupportsLogcatFormatOption,
SupportsLogcatFilterSpecsOption,
SupportsAllowDelayAdbOption,
- // AVD options: https://github.com/appium/appium-uiautomator2-driver#emulator-android-virtual-device
+ // AVD options: https://appium.github.io/appium-espresso-driver/latest/reference/capabilities/#emulator-avd
SupportsAvdOption,
SupportsAvdLaunchTimeoutOption,
SupportsAvdReadyTimeoutOption,
@@ -161,19 +163,19 @@ public class EspressoOptions extends BaseOptions implements
SupportsNetworkSpeedOption,
SupportsGpsEnabledOption,
SupportsIsHeadlessOption,
- // App signing options: https://github.com/appium/appium-uiautomator2-driver#app-signing
+ // App signing options: https://appium.github.io/appium-espresso-driver/latest/reference/capabilities/#app-signing
SupportsKeystoreOptions,
SupportsNoSignOption,
- // Device locking options: https://github.com/appium/appium-uiautomator2-driver#device-locking
+ // Device locking options: https://appium.github.io/appium-espresso-driver/latest/reference/capabilities/#device-under-test
SupportsSkipUnlockOption,
SupportsUnlockTypeOption,
SupportsUnlockKeyOption,
SupportsUnlockStrategyOption,
SupportsUnlockSuccessTimeoutOption,
- // MJPEG options: https://github.com/appium/appium-uiautomator2-driver#mjpeg
+ // MJPEG options (not defined by the Espresso driver, deprecated)
SupportsMjpegServerPortOption,
SupportsMjpegScreenshotUrlOption,
- // Web Context options: https://github.com/appium/appium-uiautomator2-driver#web-context
+ // Web Context options: https://appium.github.io/appium-espresso-driver/latest/reference/capabilities/#web-context
SupportsAutoWebViewOption,
SupportsWebviewDevtoolsPortOption,
SupportsEnsureWebviewsHavePagesOption,
@@ -192,7 +194,7 @@ public class EspressoOptions extends BaseOptions implements
SupportsShowChromedriverLogOption,
SupportsChromeOptionsOption,
SupportsChromeLoggingPrefsOption,
- // Other options: https://github.com/appium/appium-uiautomator2-driver#other
+ // Other options: https://appium.github.io/appium-espresso-driver/latest/reference/capabilities/#device-under-test
SupportsDisableSuppressAccessibilityServiceOption,
SupportsSkipLogCaptureOption {
/**
@@ -228,4 +230,104 @@ private void setCommonOptions() {
setPlatformName(MobilePlatform.ANDROID);
setAutomationName(AutomationName.ESPRESSO);
}
+
+ /**
+ * Skips capturing system logs (iOS only).
+ *
+ * @return self instance for chaining.
+ * @deprecated Not an Android capability, use {@code skipLogcatCapture} instead.
+ */
+ @Override
+ @Deprecated
+ public EspressoOptions skipLogCapture() {
+ return SupportsSkipLogCaptureOption.super.skipLogCapture();
+ }
+
+ /**
+ * Sets whether to skip capturing system logs (iOS only).
+ *
+ * @param value Capability value.
+ * @return self instance for chaining.
+ * @deprecated Not an Android capability, use {@code skipLogcatCapture} instead.
+ */
+ @Override
+ @Deprecated
+ public EspressoOptions setSkipLogCapture(boolean value) {
+ return SupportsSkipLogCaptureOption.super.setSkipLogCapture(value);
+ }
+
+ /**
+ * Gets whether to skip capturing system logs (iOS only).
+ *
+ * @return the value.
+ * @deprecated Not an Android capability, use {@code skipLogcatCapture} instead.
+ */
+ @Override
+ @Deprecated
+ public Optional doesSkipLogCapture() {
+ return SupportsSkipLogCaptureOption.super.doesSkipLogCapture();
+ }
+
+ /**
+ * Sets the MJPEG server port.
+ *
+ * @param port Port number.
+ * @return self instance for chaining.
+ * @deprecated Not defined by the Espresso driver.
+ */
+ @Override
+ @Deprecated
+ public EspressoOptions setMjpegServerPort(int port) {
+ return SupportsMjpegServerPortOption.super.setMjpegServerPort(port);
+ }
+
+ /**
+ * Gets the MJPEG server port.
+ *
+ * @return the value.
+ * @deprecated Not defined by the Espresso driver.
+ */
+ @Override
+ @Deprecated
+ public Optional getMjpegServerPort() {
+ return SupportsMjpegServerPortOption.super.getMjpegServerPort();
+ }
+
+ /**
+ * Sets the MJPEG screenshot URL.
+ *
+ * @param url Screenshot URL.
+ * @return self instance for chaining.
+ * @deprecated Not defined by the Espresso driver.
+ */
+ @Override
+ @Deprecated
+ public EspressoOptions setMjpegScreenshotUrl(URL url) {
+ return SupportsMjpegScreenshotUrlOption.super.setMjpegScreenshotUrl(url);
+ }
+
+ /**
+ * Sets the MJPEG screenshot URL.
+ *
+ * @param url Screenshot URL.
+ * @return self instance for chaining.
+ * @deprecated Not defined by the Espresso driver.
+ */
+ @Override
+ @Deprecated
+ public EspressoOptions setMjpegScreenshotUrl(String url) {
+ return SupportsMjpegScreenshotUrlOption.super.setMjpegScreenshotUrl(url);
+ }
+
+ /**
+ * Gets the MJPEG screenshot URL.
+ *
+ * @return the value.
+ * @deprecated Not defined by the Espresso driver.
+ */
+ @Override
+ @Deprecated
+ public Optional getMjpegScreenshotUrl() {
+ return SupportsMjpegScreenshotUrlOption.super.getMjpegScreenshotUrl();
+ }
}
diff --git a/src/main/java/io/appium/java_client/android/options/UiAutomator2Options.java b/src/main/java/io/appium/java_client/android/options/UiAutomator2Options.java
index 9ed02775b..830d3717c 100644
--- a/src/main/java/io/appium/java_client/android/options/UiAutomator2Options.java
+++ b/src/main/java/io/appium/java_client/android/options/UiAutomator2Options.java
@@ -105,6 +105,7 @@
import org.openqa.selenium.Capabilities;
import java.util.Map;
+import java.util.Optional;
/**
* Provides options specific to the UiAutomator2 Driver.
@@ -240,4 +241,115 @@ private void setCommonOptions() {
setPlatformName(MobilePlatform.ANDROID);
setAutomationName(AutomationName.ANDROID_UIAUTOMATOR2);
}
+
+ /**
+ * Skips capturing system logs (iOS only).
+ *
+ * @return self instance for chaining.
+ * @deprecated Not an Android capability, use {@code skipLogcatCapture} instead.
+ */
+ @Override
+ @Deprecated
+ public UiAutomator2Options skipLogCapture() {
+ return SupportsSkipLogCaptureOption.super.skipLogCapture();
+ }
+
+ /**
+ * Sets whether to skip capturing system logs (iOS only).
+ *
+ * @param value Capability value.
+ * @return self instance for chaining.
+ * @deprecated Not an Android capability, use {@code skipLogcatCapture} instead.
+ */
+ @Override
+ @Deprecated
+ public UiAutomator2Options setSkipLogCapture(boolean value) {
+ return SupportsSkipLogCaptureOption.super.setSkipLogCapture(value);
+ }
+
+ /**
+ * Gets whether to skip capturing system logs (iOS only).
+ *
+ * @return the value.
+ * @deprecated Not an Android capability, use {@code skipLogcatCapture} instead.
+ */
+ @Override
+ @Deprecated
+ public Optional doesSkipLogCapture() {
+ return SupportsSkipLogCaptureOption.super.doesSkipLogCapture();
+ }
+
+ /**
+ * Clears system files (iOS only).
+ *
+ * @return self instance for chaining.
+ * @deprecated The Android drivers never read this capability.
+ */
+ @Override
+ @Deprecated
+ public UiAutomator2Options clearSystemFiles() {
+ return SupportsClearSystemFilesOption.super.clearSystemFiles();
+ }
+
+ /**
+ * Sets whether to clear system files (iOS only).
+ *
+ * @param bool Capability value.
+ * @return self instance for chaining.
+ * @deprecated The Android drivers never read this capability.
+ */
+ @Override
+ @Deprecated
+ public UiAutomator2Options setClearSystemFiles(boolean bool) {
+ return SupportsClearSystemFilesOption.super.setClearSystemFiles(bool);
+ }
+
+ /**
+ * Gets whether to clear system files (iOS only).
+ *
+ * @return the value.
+ * @deprecated The Android drivers never read this capability.
+ */
+ @Override
+ @Deprecated
+ public Optional doesClearSystemFiles() {
+ return SupportsClearSystemFilesOption.super.doesClearSystemFiles();
+ }
+
+ /**
+ * Enables performance logging.
+ *
+ * @return self instance for chaining.
+ * @deprecated Deprecated by the Android driver, use {@code chromeLoggingPrefs} with {@code performance: ALL}.
+ */
+ @Override
+ @Deprecated
+ public UiAutomator2Options enablePerformanceLogging() {
+ return SupportsEnablePerformanceLoggingOption.super.enablePerformanceLogging();
+ }
+
+ /**
+ * Sets whether to enable performance logging.
+ *
+ * @param bool Capability value.
+ * @return self instance for chaining.
+ * @deprecated Deprecated by the Android driver, use {@code chromeLoggingPrefs} with {@code performance: ALL}.
+ */
+ @Override
+ @Deprecated
+ public UiAutomator2Options setEnablePerformanceLogging(boolean bool) {
+ return SupportsEnablePerformanceLoggingOption.super.setEnablePerformanceLogging(bool);
+ }
+
+ /**
+ * Gets whether performance logging is enabled.
+ *
+ * @return the value.
+ * @deprecated Deprecated by the Android driver, use {@code chromeLoggingPrefs} with {@code performance: ALL}.
+ */
+ @Override
+ @Deprecated
+ public Optional isEnablePerformanceLogging() {
+ return SupportsEnablePerformanceLoggingOption.super.isEnablePerformanceLogging();
+ }
}
diff --git a/src/main/java/io/appium/java_client/android/options/adb/SupportsBuildToolsVersionOption.java b/src/main/java/io/appium/java_client/android/options/adb/SupportsBuildToolsVersionOption.java
index 5930b1454..7f42012cd 100644
--- a/src/main/java/io/appium/java_client/android/options/adb/SupportsBuildToolsVersionOption.java
+++ b/src/main/java/io/appium/java_client/android/options/adb/SupportsBuildToolsVersionOption.java
@@ -35,7 +35,7 @@ public interface SupportsBuildToolsVersionOption> exten
String BUILD_TOOLS_VERSION_OPTION = "buildToolsVersion";
/**
- * The version of Android build tools to use. By default, UiAutomator2
+ * The version of Android build tools to use. By default, the
* driver uses the most recent version of build tools installed on
* the machine, but sometimes it might be necessary to give it a hint
* (let say if there is a known bug in the most recent tools version).
diff --git a/src/main/java/io/appium/java_client/android/options/adb/SupportsClearDeviceLogsOnStartOption.java b/src/main/java/io/appium/java_client/android/options/adb/SupportsClearDeviceLogsOnStartOption.java
index d373a74f2..f9f44cf4c 100644
--- a/src/main/java/io/appium/java_client/android/options/adb/SupportsClearDeviceLogsOnStartOption.java
+++ b/src/main/java/io/appium/java_client/android/options/adb/SupportsClearDeviceLogsOnStartOption.java
@@ -37,7 +37,7 @@ public interface SupportsClearDeviceLogsOnStartOption>
String CLEAR_DEVICE_LOGS_ON_START_OPTION = "clearDeviceLogsOnStart";
/**
- * Makes UiAutomator2 to delete all the existing logs in the
+ * Makes the driver delete all the existing logs in the
* device buffer before starting a new test.
*
* @return self instance for chaining.
@@ -48,10 +48,10 @@ default T clearDeviceLogsOnStart() {
/**
- * If set to true then UiAutomator2 deletes all the existing logs in the
+ * If set to true then the driver deletes all the existing logs in the
* device buffer before starting a new test.
*
- * @param value Set to false if you don't want to wait for the app to finish its launch.
+ * @param value Whether to delete all the existing device logs before starting a new test.
* @return self instance for chaining.
*/
default T setClearDeviceLogsOnStart(boolean value) {
diff --git a/src/main/java/io/appium/java_client/android/options/adb/SupportsIgnoreHiddenApiPolicyErrorOption.java b/src/main/java/io/appium/java_client/android/options/adb/SupportsIgnoreHiddenApiPolicyErrorOption.java
index 7f559ca2a..f6c5696d9 100644
--- a/src/main/java/io/appium/java_client/android/options/adb/SupportsIgnoreHiddenApiPolicyErrorOption.java
+++ b/src/main/java/io/appium/java_client/android/options/adb/SupportsIgnoreHiddenApiPolicyErrorOption.java
@@ -37,7 +37,7 @@ public interface SupportsIgnoreHiddenApiPolicyErrorOption> extends
/**
* Sets the package identifier of the app, which is used as a system mock location
* provider since Appium 1.18.0+. This capability has no effect on emulators.
- * If the value is set to null or an empty string, then Appium will skip the mocked
- * location provider setup procedure. Defaults to Appium Setting package
- * identifier (io.appium.settings).
+ * If the value is set to null or an empty string, then the driver will reset the mocked
+ * location provider instead. Defaults to Appium Setting package
+ * identifier (io.appium.settings) only if the capability is not set at all.
*
* @param appIdentifier The identifier of the mock location provider app.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/android/options/adb/SupportsRemoteAdbHostOption.java b/src/main/java/io/appium/java_client/android/options/adb/SupportsRemoteAdbHostOption.java
index 13762d520..5aeef9232 100644
--- a/src/main/java/io/appium/java_client/android/options/adb/SupportsRemoteAdbHostOption.java
+++ b/src/main/java/io/appium/java_client/android/options/adb/SupportsRemoteAdbHostOption.java
@@ -36,7 +36,7 @@ public interface SupportsRemoteAdbHostOption> extends
/**
* Address of the host where ADB is running (the value of -H ADB command line option).
- * Localhost by default.
+ * Unset by default, which makes the driver fall back to localhost.
*
* @param host The name host where ADB server is running.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/android/options/adb/SupportsSkipLogcatCaptureOption.java b/src/main/java/io/appium/java_client/android/options/adb/SupportsSkipLogcatCaptureOption.java
index ae7d9f6a6..c7e41058f 100644
--- a/src/main/java/io/appium/java_client/android/options/adb/SupportsSkipLogcatCaptureOption.java
+++ b/src/main/java/io/appium/java_client/android/options/adb/SupportsSkipLogcatCaptureOption.java
@@ -49,7 +49,7 @@ default T skipLogcatCapture() {
* Being set to true disables automatic logcat output collection during the test run.
* false by default
*
- * @param value Whether to delete all the existing device logs before starting a new test.
+ * @param value Whether to disable automatic logcat output collection.
* @return self instance for chaining.
*/
default T setSkipLogcatCapture(boolean value) {
@@ -57,8 +57,7 @@ default T setSkipLogcatCapture(boolean value) {
}
/**
- * Get whether to delete all the existing logs in the
- * device buffer before starting a new test.
+ * Get whether automatic logcat output collection is disabled.
*
* @return True or false.
*/
diff --git a/src/main/java/io/appium/java_client/android/options/adb/SupportsSuppressKillServerOption.java b/src/main/java/io/appium/java_client/android/options/adb/SupportsSuppressKillServerOption.java
index 2da5f4e75..f6b9192f7 100644
--- a/src/main/java/io/appium/java_client/android/options/adb/SupportsSuppressKillServerOption.java
+++ b/src/main/java/io/appium/java_client/android/options/adb/SupportsSuppressKillServerOption.java
@@ -37,7 +37,7 @@ public interface SupportsSuppressKillServerOption> exte
String SUPPRESS_KILL_SERVER_OPTION = "suppressKillServer";
/**
- * Prevents the driver from ever killing the ADB server explicitl.
+ * Prevents the driver from ever killing the ADB server explicitly.
*
* @return self instance for chaining.
*/
diff --git a/src/main/java/io/appium/java_client/android/options/app/SupportsAppActivityOption.java b/src/main/java/io/appium/java_client/android/options/app/SupportsAppActivityOption.java
index 72c54ab78..4577cb3d0 100644
--- a/src/main/java/io/appium/java_client/android/options/app/SupportsAppActivityOption.java
+++ b/src/main/java/io/appium/java_client/android/options/app/SupportsAppActivityOption.java
@@ -35,7 +35,7 @@ public interface SupportsAppActivityOption> extends
String APP_ACTIVITY_OPTION = "appActivity";
/**
- * Main application activity identifier. If not provided then UiAutomator2
+ * Main application activity identifier. If not provided then the driver
* will try to detect it automatically from the package provided by the app capability.
*
* @param appActivity Fully qualified app activity class name.
diff --git a/src/main/java/io/appium/java_client/android/options/app/SupportsAppPackageOption.java b/src/main/java/io/appium/java_client/android/options/app/SupportsAppPackageOption.java
index fad2d0c51..2bd04201f 100644
--- a/src/main/java/io/appium/java_client/android/options/app/SupportsAppPackageOption.java
+++ b/src/main/java/io/appium/java_client/android/options/app/SupportsAppPackageOption.java
@@ -35,7 +35,7 @@ public interface SupportsAppPackageOption> extends
String APP_PACKAGE_OPTION = "appPackage";
/**
- * Application package identifier to be started. If not provided then UiAutomator2 will
+ * Application package identifier to be started. If not provided then the driver will
* try to detect it automatically from the package provided by the app capability.
*
* @param appPackage App package identifier.
diff --git a/src/main/java/io/appium/java_client/android/options/app/SupportsAppWaitDurationOption.java b/src/main/java/io/appium/java_client/android/options/app/SupportsAppWaitDurationOption.java
index 72c872031..2338bc9fd 100644
--- a/src/main/java/io/appium/java_client/android/options/app/SupportsAppWaitDurationOption.java
+++ b/src/main/java/io/appium/java_client/android/options/app/SupportsAppWaitDurationOption.java
@@ -41,7 +41,7 @@ public interface SupportsAppWaitDurationOption> extends
* Maximum amount of time to wait until the application under test is started
* (e.g. an activity returns the control to the caller). 20000 ms by default.
*
- * @param appWaitDuration Package identifier to wait for.
+ * @param appWaitDuration Maximum duration to wait for the app to start.
* @return self instance for chaining.
*/
default T setAppWaitDuration(Duration appWaitDuration) {
@@ -49,9 +49,9 @@ default T setAppWaitDuration(Duration appWaitDuration) {
}
/**
- * Get the identifier of the app package to wait for.
+ * Get the maximum amount of time to wait until the application under test is started.
*
- * @return Package identifier.
+ * @return Wait duration.
*/
default Optional getAppWaitDuration() {
return Optional.ofNullable(toDuration(getCapability(APP_WAIT_DURATION_OPTION)));
diff --git a/src/main/java/io/appium/java_client/android/options/app/SupportsIntentActionOption.java b/src/main/java/io/appium/java_client/android/options/app/SupportsIntentActionOption.java
index 71ccf26a7..2a4068272 100644
--- a/src/main/java/io/appium/java_client/android/options/app/SupportsIntentActionOption.java
+++ b/src/main/java/io/appium/java_client/android/options/app/SupportsIntentActionOption.java
@@ -37,6 +37,7 @@ public interface SupportsIntentActionOption> extends
/**
* Set an optional intent action to be applied when
* starting the given appActivity by Activity Manager.
+ * {@code android.intent.action.MAIN} by default.
*
* @param intentAction Intent action class name.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/android/options/app/SupportsIntentCategoryOption.java b/src/main/java/io/appium/java_client/android/options/app/SupportsIntentCategoryOption.java
index 2b75ce276..a83ddaf7d 100644
--- a/src/main/java/io/appium/java_client/android/options/app/SupportsIntentCategoryOption.java
+++ b/src/main/java/io/appium/java_client/android/options/app/SupportsIntentCategoryOption.java
@@ -37,6 +37,7 @@ public interface SupportsIntentCategoryOption> extends
/**
* Set an optional intent category to be applied when
* starting the given appActivity by Activity Manager.
+ * {@code android.intent.category.LAUNCHER} by default.
*
* @param intentCategory Intent category class name.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/android/options/app/SupportsIntentFlagsOption.java b/src/main/java/io/appium/java_client/android/options/app/SupportsIntentFlagsOption.java
index eb524b66c..ba4fa212f 100644
--- a/src/main/java/io/appium/java_client/android/options/app/SupportsIntentFlagsOption.java
+++ b/src/main/java/io/appium/java_client/android/options/app/SupportsIntentFlagsOption.java
@@ -37,6 +37,7 @@ public interface SupportsIntentFlagsOption> extends
/**
* Set an optional intent flags to be applied when
* starting the given appActivity by Activity Manager.
+ * {@code 0x10200000} by default.
*
* @param intentFlags Intent flags hexadecimal string.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/android/options/context/SupportsChromedriverPortsOption.java b/src/main/java/io/appium/java_client/android/options/context/SupportsChromedriverPortsOption.java
index 89e6c557a..47d6dfe7c 100644
--- a/src/main/java/io/appium/java_client/android/options/context/SupportsChromedriverPortsOption.java
+++ b/src/main/java/io/appium/java_client/android/options/context/SupportsChromedriverPortsOption.java
@@ -38,6 +38,7 @@ public interface SupportsChromedriverPortsOption> exten
/**
* Array of possible port numbers to assign for Chromedriver communication.
* If none of the port in this array is free then a server error is thrown.
+ * The driver also accepts [start, stop] range pairs, which this type cannot express.
*
* @param ports one or more port numbers in range 0..65535
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/android/options/context/SupportsNativeWebScreenshotOption.java b/src/main/java/io/appium/java_client/android/options/context/SupportsNativeWebScreenshotOption.java
index 4721b38e1..4a60ec540 100644
--- a/src/main/java/io/appium/java_client/android/options/context/SupportsNativeWebScreenshotOption.java
+++ b/src/main/java/io/appium/java_client/android/options/context/SupportsNativeWebScreenshotOption.java
@@ -37,7 +37,7 @@ public interface SupportsNativeWebScreenshotOption> ext
String NATIVE_WEB_SCREENSHOT_OPTION = "nativeWebScreenshot";
/**
- * Enforce to use screenshoting endpoint provided by UiAutomator framework
+ * Enforce to use screenshoting endpoint provided by the native automation framework
* rather than the one provided by chromedriver.
*
* @return self instance for chaining.
@@ -47,7 +47,7 @@ default T nativeWebScreenshot() {
}
/**
- * Whether to use screenshoting endpoint provided by UiAutomator framework (true)
+ * Whether to use screenshoting endpoint provided by the native automation framework (true)
* rather than the one provided by chromedriver (false, the default value).
* Use it when you experience issues with the latter.
*
diff --git a/src/main/java/io/appium/java_client/android/options/localization/SupportsLocaleScriptOption.java b/src/main/java/io/appium/java_client/android/options/localization/SupportsLocaleScriptOption.java
index be08413a9..60080bed1 100644
--- a/src/main/java/io/appium/java_client/android/options/localization/SupportsLocaleScriptOption.java
+++ b/src/main/java/io/appium/java_client/android/options/localization/SupportsLocaleScriptOption.java
@@ -35,11 +35,11 @@ public interface SupportsLocaleScriptOption> extends
String LOCALE_SCRIPT_OPTION = "localeScript";
/**
- * Set canonical name of the locale to be set for the app under test,
- * for example zh-Hans-CN.
+ * Set the script part of the locale to be set for the app under test,
+ * for example Hans in zh-Hans-CN.
* See https://developer.android.com/reference/java/util/Locale.html for more details.
*
- * @param localeScript is the language abbreviation.
+ * @param localeScript is the locale script, for example Hans.
* @return this MobileOptions, for chaining.
*/
default T setLocaleScript(String localeScript) {
@@ -47,7 +47,7 @@ default T setLocaleScript(String localeScript) {
}
/**
- * Get canonical name of the locale to be set for the app under test.
+ * Get the script part of the locale to be set for the app under test.
*
* @return Locale script value.
*/
diff --git a/src/main/java/io/appium/java_client/android/options/locking/SupportsSkipUnlockOption.java b/src/main/java/io/appium/java_client/android/options/locking/SupportsSkipUnlockOption.java
index 3570656d0..ed15a450d 100644
--- a/src/main/java/io/appium/java_client/android/options/locking/SupportsSkipUnlockOption.java
+++ b/src/main/java/io/appium/java_client/android/options/locking/SupportsSkipUnlockOption.java
@@ -47,7 +47,7 @@ default T skipUnlock() {
/**
* Whether to skip the check for lock screen presence (true). By default,
- * UiAutomator2 driver tries to detect if the device's screen is locked
+ * the driver tries to detect if the device's screen is locked
* before starting the test and to unlock that (which sometimes might be unstable).
* Note, that this operation takes some time, so it is highly recommended to set
* this capability to true and disable screen locking on devices under test.
diff --git a/src/main/java/io/appium/java_client/android/options/locking/SupportsUnlockKeyOption.java b/src/main/java/io/appium/java_client/android/options/locking/SupportsUnlockKeyOption.java
index 4db74d288..cc66f4174 100644
--- a/src/main/java/io/appium/java_client/android/options/locking/SupportsUnlockKeyOption.java
+++ b/src/main/java/io/appium/java_client/android/options/locking/SupportsUnlockKeyOption.java
@@ -36,7 +36,7 @@ public interface SupportsUnlockKeyOption> extends
/**
* Allows to set an unlock key.
- * Read [Unlock tutorial](https://github.com/appium/appium-android-driver/blob/master/docs/UNLOCK.md)
+ * Read [Unlock tutorial](https://github.com/appium/appium-uiautomator2-driver/blob/master/docs/unlock/main.md)
* for more details.
*
* @param unlockKey The unlock key.
diff --git a/src/main/java/io/appium/java_client/android/options/locking/SupportsUnlockStrategyOption.java b/src/main/java/io/appium/java_client/android/options/locking/SupportsUnlockStrategyOption.java
index 1dca5ec94..dd37b7550 100644
--- a/src/main/java/io/appium/java_client/android/options/locking/SupportsUnlockStrategyOption.java
+++ b/src/main/java/io/appium/java_client/android/options/locking/SupportsUnlockStrategyOption.java
@@ -39,7 +39,7 @@ public interface SupportsUnlockStrategyOption> extends
* Setting it to 'uiautomator' will enforce the driver to avoid using special
* ADB shortcuts in order to speed up the unlock procedure.
*
- * @param strategy The unlock strategy.
+ * @param strategy The unlock strategy: 'locksettings' or 'uiautomator' (case-insensitive).
* @return self instance for chaining.
*/
default T setUnlockStrategy(String strategy) {
diff --git a/src/main/java/io/appium/java_client/android/options/locking/SupportsUnlockTypeOption.java b/src/main/java/io/appium/java_client/android/options/locking/SupportsUnlockTypeOption.java
index ff0f724e2..a554f3202 100644
--- a/src/main/java/io/appium/java_client/android/options/locking/SupportsUnlockTypeOption.java
+++ b/src/main/java/io/appium/java_client/android/options/locking/SupportsUnlockTypeOption.java
@@ -36,7 +36,7 @@ public interface SupportsUnlockTypeOption> extends
/**
* Set one of the possible types of Android lock screens to unlock.
- * Read the [Unlock tutorial](https://github.com/appium/appium-android-driver/blob/master/docs/UNLOCK.md)
+ * Read the [Unlock tutorial](https://github.com/appium/appium-uiautomator2-driver/blob/master/docs/unlock/main.md)
* for more details.
*
* @param unlockType One of possible unlock types.
diff --git a/src/main/java/io/appium/java_client/android/options/mjpeg/SupportsMjpegServerPortOption.java b/src/main/java/io/appium/java_client/android/options/mjpeg/SupportsMjpegServerPortOption.java
index 2e5e9223c..20467a048 100644
--- a/src/main/java/io/appium/java_client/android/options/mjpeg/SupportsMjpegServerPortOption.java
+++ b/src/main/java/io/appium/java_client/android/options/mjpeg/SupportsMjpegServerPortOption.java
@@ -37,7 +37,7 @@ public interface SupportsMjpegServerPortOption> extends
String MJPEG_SERVER_PORT_OPTION = "mjpegServerPort";
/**
- * The number of the port UiAutomator2 server starts the MJPEG server on.
+ * The number of the local port the device MJPEG server port (always 7810) gets forwarded to.
* If not provided then the screenshots broadcasting service on the remote
* device does not get exposed to a local port (e.g. no adb port forwarding
* is happening).
@@ -50,7 +50,7 @@ default T setMjpegServerPort(int port) {
}
/**
- * Get the number of the port UiAutomator2 server starts the MJPEG server on.
+ * Get the number of the local port the device MJPEG server port gets forwarded to.
*
* @return Port number.
*/
diff --git a/src/main/java/io/appium/java_client/android/options/server/EspressoBuildConfig.java b/src/main/java/io/appium/java_client/android/options/server/EspressoBuildConfig.java
index c24893cc5..76a1439af 100644
--- a/src/main/java/io/appium/java_client/android/options/server/EspressoBuildConfig.java
+++ b/src/main/java/io/appium/java_client/android/options/server/EspressoBuildConfig.java
@@ -289,8 +289,8 @@ public Optional getKotlinVersion() {
/**
* Set a non-empty array of dependent module names with their versions.
- * The scripts add all these items as "implementation" lines of dependencies
- * category in the app build.gradle script.
+ * The scripts add all these items as "api" lines of dependencies
+ * category in the app/build.gradle.kts script of the Espresso server.
*
* @param dependencies E.g. ["xerces.xercesImpl:2.8.0", "xerces.xmlParserAPIs:2.6.2"].
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/android/options/server/SupportsEspressoServerLaunchTimeoutOption.java b/src/main/java/io/appium/java_client/android/options/server/SupportsEspressoServerLaunchTimeoutOption.java
index 760a23149..5f879a622 100644
--- a/src/main/java/io/appium/java_client/android/options/server/SupportsEspressoServerLaunchTimeoutOption.java
+++ b/src/main/java/io/appium/java_client/android/options/server/SupportsEspressoServerLaunchTimeoutOption.java
@@ -38,24 +38,47 @@ public interface SupportsEspressoServerLaunchTimeoutOption getUiautomator2ServerInstallTimeout() {
+ default Optional getEspressoServerLaunchTimeout() {
return Optional.ofNullable(
toDuration(getCapability(ESPRESSO_SERVER_LAUNCH_TIMEOUT_OPTION))
);
}
+
+ /**
+ * Get the maximum timeout to wait until Espresso server is listening on the device.
+ *
+ * @return The timeout value.
+ * @deprecated Misnamed accessor, use {@link #getEspressoServerLaunchTimeout()}.
+ */
+ @Deprecated
+ default Optional getUiautomator2ServerInstallTimeout() {
+ return getEspressoServerLaunchTimeout();
+ }
}
diff --git a/src/main/java/io/appium/java_client/chromium/options/ChromiumOptions.java b/src/main/java/io/appium/java_client/chromium/options/ChromiumOptions.java
index 2e9b3a71f..760bd3b5b 100644
--- a/src/main/java/io/appium/java_client/chromium/options/ChromiumOptions.java
+++ b/src/main/java/io/appium/java_client/chromium/options/ChromiumOptions.java
@@ -25,8 +25,10 @@
/**
* Options class that sets options for Chromium when testing websites.
+ * Set the browser name to {@code MicrosoftEdge} (case-sensitive) to automate MS Edge.
*
- * @see appium-chromium-driver usage section
+ * @see
+ * appium-chromium-driver capabilities
*/
public class ChromiumOptions extends BaseOptions implements
SupportsBrowserNameOption,
diff --git a/src/main/java/io/appium/java_client/chromium/options/SupportsAutodownloadOption.java b/src/main/java/io/appium/java_client/chromium/options/SupportsAutodownloadOption.java
index c5c932c88..bff8ab3cb 100644
--- a/src/main/java/io/appium/java_client/chromium/options/SupportsAutodownloadOption.java
+++ b/src/main/java/io/appium/java_client/chromium/options/SupportsAutodownloadOption.java
@@ -37,9 +37,8 @@ public interface SupportsAutodownloadOption> extends
String AUTODOWNLOAD_ENABLED = "autodownloadEnabled";
/**
- * Set to false for disabling automatic downloading of Chrome drivers.
- * Unless disable build check preference has been user-set, the capability
- * is present because the default value is true.
+ * Set to false for disabling automatic downloading of a compatible
+ * chromedriver/msedgedriver on session start. True by default.
*
* @param autodownloadEnabled flag.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/chromium/options/SupportsBuildCheckOption.java b/src/main/java/io/appium/java_client/chromium/options/SupportsBuildCheckOption.java
index 3c42698b6..cd424ed07 100644
--- a/src/main/java/io/appium/java_client/chromium/options/SupportsBuildCheckOption.java
+++ b/src/main/java/io/appium/java_client/chromium/options/SupportsBuildCheckOption.java
@@ -38,9 +38,8 @@ public interface SupportsBuildCheckOption> extends
String DISABLE_BUILD_CHECK = "disableBuildCheck";
/**
- * Set to true to add the --disable-build-check flag when starting WebDriver.
- * Unless disable build check preference has been user-set, the capability
- * is not present because the default value is false.
+ * Set to true to skip the check that chromedriver/msedgedriver and the browser
+ * versions match (the --disable-build-check flag). False by default.
*
* @param buildCheckDisabled flag for --disable-build-check.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/chromium/options/SupportsChromeDrivePortOption.java b/src/main/java/io/appium/java_client/chromium/options/SupportsChromeDrivePortOption.java
index 601c209aa..18d7e78c6 100644
--- a/src/main/java/io/appium/java_client/chromium/options/SupportsChromeDrivePortOption.java
+++ b/src/main/java/io/appium/java_client/chromium/options/SupportsChromeDrivePortOption.java
@@ -37,9 +37,7 @@ public interface SupportsChromeDrivePortOption> extends
String CHROME_DRIVER_PORT = "chromedriverPort";
/**
- * The port to start WebDriver processes on. Unless the chrome drive port preference
- * has been user-set, it will listen on port 9515, which is the default
- * value for this capability.
+ * The port to start chromedriver/msedgedriver on. 9515 by default.
*
* @param port port number in range 0..65535.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/chromium/options/SupportsExecutableDirOption.java b/src/main/java/io/appium/java_client/chromium/options/SupportsExecutableDirOption.java
index 8e5320c7a..4ebd629d2 100644
--- a/src/main/java/io/appium/java_client/chromium/options/SupportsExecutableDirOption.java
+++ b/src/main/java/io/appium/java_client/chromium/options/SupportsExecutableDirOption.java
@@ -35,11 +35,10 @@ public interface SupportsExecutableDirOption> extends
String EXECUTABLE_DIR = "executableDir";
/**
- * A directory within which is found any number of WebDriver binaries.
- * If set, the driver will search this directory for WebDrivers of the
- * appropriate version to use for your browser.
+ * A directory containing any number of chromedriver/msedgedriver binaries.
+ * If set, the driver will search it for the binary matching the browser version.
*
- * @param directory of WebDriver binaries.
+ * @param directory of chromedriver/msedgedriver binaries.
* @return self instance for chaining.
*/
default T setExecutableDir(String directory) {
@@ -47,9 +46,9 @@ default T setExecutableDir(String directory) {
}
/**
- * Get a directory within which is found any number of WebDriver binaries.
+ * Get the directory containing chromedriver/msedgedriver binaries.
*
- * @return executable directory of a Driver binary.
+ * @return directory of the driver binaries.
*/
default Optional getExecutableDir() {
return Optional.ofNullable((String) getCapability(EXECUTABLE_DIR));
diff --git a/src/main/java/io/appium/java_client/chromium/options/SupportsExecutableOption.java b/src/main/java/io/appium/java_client/chromium/options/SupportsExecutableOption.java
index c4fed4377..e434ae8c0 100644
--- a/src/main/java/io/appium/java_client/chromium/options/SupportsExecutableOption.java
+++ b/src/main/java/io/appium/java_client/chromium/options/SupportsExecutableOption.java
@@ -35,10 +35,10 @@ public interface SupportsExecutableOption> extends
String EXECUTABLE = "executable";
/**
- * The absolute path to a WebDriver binary executable.
- * If set, the driver will use that path instead of its own WebDriver.
+ * The absolute path to a chromedriver/msedgedriver binary.
+ * If set, the driver will use it instead of its own binary.
*
- * @param path absolute of a WebDriver.
+ * @param path absolute path to the binary.
* @return self instance for chaining.
*/
default T setExecutable(String path) {
@@ -46,7 +46,7 @@ default T setExecutable(String path) {
}
/**
- * Get the absolute path to a WebDriver binary executable.
+ * Get the absolute path to a chromedriver/msedgedriver binary.
*
* @return executable absolute path.
*/
diff --git a/src/main/java/io/appium/java_client/chromium/options/SupportsLogPathOption.java b/src/main/java/io/appium/java_client/chromium/options/SupportsLogPathOption.java
index aaa14f56c..7ca844ec8 100644
--- a/src/main/java/io/appium/java_client/chromium/options/SupportsLogPathOption.java
+++ b/src/main/java/io/appium/java_client/chromium/options/SupportsLogPathOption.java
@@ -35,8 +35,8 @@ public interface SupportsLogPathOption> extends
String LOG_PATH = "logPath";
/**
- * If set, the path to use with the --log-path parameter directing
- * WebDriver to write its log to that path.
+ * If set, chromedriver/msedgedriver writes its log to this file (the --log-path
+ * flag) instead of the default logger.
*
* @param logPath where to write the logs.
* @return self instance for chaining.
@@ -46,7 +46,7 @@ default T setLogPath(String logPath) {
}
/**
- * Get the log path where the WebDrive writes the logs.
+ * Get the log path where the driver writes the logs.
*
* @return the log path.
*/
diff --git a/src/main/java/io/appium/java_client/chromium/options/SupportsUseSystemExecutableOption.java b/src/main/java/io/appium/java_client/chromium/options/SupportsUseSystemExecutableOption.java
index 5858fdbb8..daa9e23a0 100644
--- a/src/main/java/io/appium/java_client/chromium/options/SupportsUseSystemExecutableOption.java
+++ b/src/main/java/io/appium/java_client/chromium/options/SupportsUseSystemExecutableOption.java
@@ -38,11 +38,9 @@ public interface SupportsUseSystemExecutableOption> ext
String USE_SYSTEM_EXECUTABLE = "useSystemExecutable";
/**
- * Set to true to use the version of WebDriver bundled with this driver,
- * rather than attempting to download a new one based on the version of the
- * browser under test.
- * Unless disable build check preference has been user-set, the capability
- * is not present because the default value is false.
+ * Set to true to use the chromedriver binary bundled with the Chromium driver.
+ * False by default. Mostly relevant for driver versions 1.3.35 or older,
+ * which downloaded chromedriver on installation.
*
* @param useSystemExecutable flag.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/chromium/options/SupportsVerboseOption.java b/src/main/java/io/appium/java_client/chromium/options/SupportsVerboseOption.java
index f1a126ed9..d85531649 100644
--- a/src/main/java/io/appium/java_client/chromium/options/SupportsVerboseOption.java
+++ b/src/main/java/io/appium/java_client/chromium/options/SupportsVerboseOption.java
@@ -37,9 +37,8 @@ public interface SupportsVerboseOption> extends
String VERBOSE = "verbose";
/**
- * Set to true to add the --verbose flag when starting WebDriver.
- * Unless the verbose preference has been user-set, the capability
- * is not present because the default value is false.
+ * Set to true to add the --verbose flag when starting chromedriver/msedgedriver.
+ * False by default.
*
* @param verbose flag for --verbose.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/flutter/options/SupportsFlutterServerLaunchTimeoutOption.java b/src/main/java/io/appium/java_client/flutter/options/SupportsFlutterServerLaunchTimeoutOption.java
index d677b648f..5eda1f265 100644
--- a/src/main/java/io/appium/java_client/flutter/options/SupportsFlutterServerLaunchTimeoutOption.java
+++ b/src/main/java/io/appium/java_client/flutter/options/SupportsFlutterServerLaunchTimeoutOption.java
@@ -20,7 +20,7 @@ public interface SupportsFlutterServerLaunchTimeoutOption> exten
String FLUTTER_SYSTEM_PORT_OPTION = "flutterSystemPort";
/**
- * Set the port where Flutter server starts.
+ * Set the port where Flutter server starts. By default the first free port
+ * in the 10000..11000 range is used.
*
* @param flutterSystemPort is the port number
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/gecko/options/GeckoOptions.java b/src/main/java/io/appium/java_client/gecko/options/GeckoOptions.java
index e565b2c9f..b07a04b78 100644
--- a/src/main/java/io/appium/java_client/gecko/options/GeckoOptions.java
+++ b/src/main/java/io/appium/java_client/gecko/options/GeckoOptions.java
@@ -16,7 +16,6 @@
package io.appium.java_client.gecko.options;
-import io.appium.java_client.mac.options.SupportsSystemPortOption;
import io.appium.java_client.remote.AutomationName;
import io.appium.java_client.remote.options.BaseOptions;
import io.appium.java_client.remote.options.SupportsAcceptInsecureCertsOption;
@@ -34,7 +33,7 @@
* Provides options specific to the Geckodriver.
*
* For more details, refer to the
- * capabilities documentation
+ * capabilities documentation
*/
public class GeckoOptions extends BaseOptions implements
SupportsBrowserNameOption,
diff --git a/src/main/java/io/appium/java_client/gecko/options/SupportsAndroidStorageOption.java b/src/main/java/io/appium/java_client/gecko/options/SupportsAndroidStorageOption.java
index cd83b8408..2ff8defdb 100644
--- a/src/main/java/io/appium/java_client/gecko/options/SupportsAndroidStorageOption.java
+++ b/src/main/java/io/appium/java_client/gecko/options/SupportsAndroidStorageOption.java
@@ -35,7 +35,8 @@ public interface SupportsAndroidStorageOption> extends
String ANDROID_STORAGE_OPTION = "androidStorage";
/**
- * See
+ * One of {@code auto}, {@code app}, {@code internal} or {@code sdcard}. Deprecated
+ * on the geckodriver side. See
* https://firefox-source-docs.mozilla.org/testing/geckodriver
* /Flags.html#code-android-storage-var-android-storage-var-code
*
diff --git a/src/main/java/io/appium/java_client/gecko/options/SupportsMarionettePortOption.java b/src/main/java/io/appium/java_client/gecko/options/SupportsMarionettePortOption.java
index d2364d55b..7cae5c1c3 100644
--- a/src/main/java/io/appium/java_client/gecko/options/SupportsMarionettePortOption.java
+++ b/src/main/java/io/appium/java_client/gecko/options/SupportsMarionettePortOption.java
@@ -40,9 +40,7 @@ public interface SupportsMarionettePortOption> extends
* Selects the port for Geckodriver’s connection to the Marionette
* remote protocol. The existing Firefox instance must have Marionette
* enabled. To enable the remote protocol in Firefox, you can pass the
- * -marionette flag. Unless the marionette.port preference has been
- * user-set, Marionette will listen on port 2828, which is the default
- * value for this capability.
+ * -marionette flag. The default is 2828, applied only if {@code noReset} is set.
*
* @param port port number in range 0..65535
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/gecko/options/SupportsSystemPortOption.java b/src/main/java/io/appium/java_client/gecko/options/SupportsSystemPortOption.java
index daaac76d9..5fc8b05e5 100644
--- a/src/main/java/io/appium/java_client/gecko/options/SupportsSystemPortOption.java
+++ b/src/main/java/io/appium/java_client/gecko/options/SupportsSystemPortOption.java
@@ -38,8 +38,8 @@ public interface SupportsSystemPortOption> extends
/**
* The number of the port for the driver to listen on. Must be unique
- * for each session. If not provided then Appium will try to detect
- * it automatically.
+ * for each session. If not provided then the first free port
+ * in the 5200..5300 range is used.
*
* @param port port number in range 0..65535
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/ios/options/XCUITestOptions.java b/src/main/java/io/appium/java_client/ios/options/XCUITestOptions.java
index 42066db40..7f6345bd9 100644
--- a/src/main/java/io/appium/java_client/ios/options/XCUITestOptions.java
+++ b/src/main/java/io/appium/java_client/ios/options/XCUITestOptions.java
@@ -126,6 +126,7 @@
* For more details, refer to the
* capabilities documentation
*/
+@SuppressWarnings("deprecation")
public class XCUITestOptions extends BaseOptions implements
// General options: https://github.com/appium/appium-xcuitest-driver#general
SupportsDeviceNameOption,
diff --git a/src/main/java/io/appium/java_client/ios/options/app/SupportsAppInstallStrategyOption.java b/src/main/java/io/appium/java_client/ios/options/app/SupportsAppInstallStrategyOption.java
index 750d836c2..52101b705 100644
--- a/src/main/java/io/appium/java_client/ios/options/app/SupportsAppInstallStrategyOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/app/SupportsAppInstallStrategyOption.java
@@ -26,7 +26,9 @@
* Provides getters and setters for the {@code appInstallStrategy} capability.
*
* @param options type, used for chaining.
+ * @deprecated The capability has been removed from the XCUITest driver and has no effect.
*/
+@Deprecated
public interface SupportsAppInstallStrategyOption> extends
Capabilities, CanSetCapability {
/**
diff --git a/src/main/java/io/appium/java_client/ios/options/app/SupportsAppPushTimeoutOption.java b/src/main/java/io/appium/java_client/ios/options/app/SupportsAppPushTimeoutOption.java
index ca12eff3d..357f65343 100644
--- a/src/main/java/io/appium/java_client/ios/options/app/SupportsAppPushTimeoutOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/app/SupportsAppPushTimeoutOption.java
@@ -38,7 +38,7 @@ public interface SupportsAppPushTimeoutOption> extends
/**
* The timeout for application upload.
- * Works for real devices only. The default value is 30000ms.
+ * Works for real devices only. The default value is 240000ms (4 minutes).
*
* @param timeout App push timeout.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/ios/options/general/SupportsIncludeDeviceCapsToSessionInfoOption.java b/src/main/java/io/appium/java_client/ios/options/general/SupportsIncludeDeviceCapsToSessionInfoOption.java
index b755014c0..661e8b532 100644
--- a/src/main/java/io/appium/java_client/ios/options/general/SupportsIncludeDeviceCapsToSessionInfoOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/general/SupportsIncludeDeviceCapsToSessionInfoOption.java
@@ -28,7 +28,9 @@
* Provides getters and setters for the {@code includeDeviceCapsToSessionInfo} capability.
*
* @param options type, used for chaining.
+ * @deprecated The capability has no effect since XCUITest driver version 5.
*/
+@Deprecated
public interface SupportsIncludeDeviceCapsToSessionInfoOption> extends
Capabilities, CanSetCapability {
/**
diff --git a/src/main/java/io/appium/java_client/ios/options/other/SupportsLaunchWithIdbOption.java b/src/main/java/io/appium/java_client/ios/options/other/SupportsLaunchWithIdbOption.java
index 87dd61bbc..cc546ba43 100644
--- a/src/main/java/io/appium/java_client/ios/options/other/SupportsLaunchWithIdbOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/other/SupportsLaunchWithIdbOption.java
@@ -28,7 +28,9 @@
* Provides getters and setters for the {@code launchWithIDB} capability.
*
* @param options type, used for chaining.
+ * @deprecated The capability has been removed from the XCUITest driver (idb is no longer supported) and has no effect.
*/
+@Deprecated
public interface SupportsLaunchWithIdbOption> extends
Capabilities, CanSetCapability {
/**
diff --git a/src/main/java/io/appium/java_client/ios/options/simulator/SupportsCalendarAccessAuthorizedOption.java b/src/main/java/io/appium/java_client/ios/options/simulator/SupportsCalendarAccessAuthorizedOption.java
index 100786b5d..dbf0d59d1 100644
--- a/src/main/java/io/appium/java_client/ios/options/simulator/SupportsCalendarAccessAuthorizedOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/simulator/SupportsCalendarAccessAuthorizedOption.java
@@ -28,7 +28,9 @@
* Provides getters and setters for the {@code calendarAccessAuthorized} capability.
*
* @param options type, used for chaining.
+ * @deprecated The capability has been removed from the XCUITest driver and has no effect.
*/
+@Deprecated
public interface SupportsCalendarAccessAuthorizedOption> extends
Capabilities, CanSetCapability {
/**
diff --git a/src/main/java/io/appium/java_client/ios/options/simulator/SupportsCustomSslCertOption.java b/src/main/java/io/appium/java_client/ios/options/simulator/SupportsCustomSslCertOption.java
index 0cda7c8eb..8d93bf7ee 100644
--- a/src/main/java/io/appium/java_client/ios/options/simulator/SupportsCustomSslCertOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/simulator/SupportsCustomSslCertOption.java
@@ -35,8 +35,9 @@ public interface SupportsCustomSslCertOption> extends
String CUSTOM_SSLCERT_OPTION = "customSSLCert";
/**
- * Adds a root SSL certificate to IOS Simulator.
- * The certificate content must be provided in PEM format.
+ * Adds a root SSL certificate to iOS Simulators and real devices.
+ * The certificate content must be provided in PEM format. On real devices
+ * running iOS/tvOS 18+ the appium-ios-remotexpc package must be installed.
*
* @param cert Certificate content in PEM format.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/ios/options/simulator/SupportsScaleFactorOption.java b/src/main/java/io/appium/java_client/ios/options/simulator/SupportsScaleFactorOption.java
index 763948d6c..47b141475 100644
--- a/src/main/java/io/appium/java_client/ios/options/simulator/SupportsScaleFactorOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/simulator/SupportsScaleFactorOption.java
@@ -38,10 +38,7 @@ public interface SupportsScaleFactorOption> extends
* Simulator scale factor. This is useful to have if the default resolution
* of simulated device is greater than the actual display resolution.
* So you can scale the simulator to see the whole device screen without scrolling.
- * Acceptable values for simulators running Xcode SDK 8 and older are: '1.0',
- * '0.75', '0.5', '0.33' and '0.25', where '1.0' means 100% scale.
- * For simulators running Xcode SDK 9 and above the value could be any valid
- * positive float number.
+ * The value must be a string containing a positive float number, for example '2.0'.
*
* @param scaleFactor Scale factor value.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/ios/options/simulator/SupportsWebkitResponseTimeoutOption.java b/src/main/java/io/appium/java_client/ios/options/simulator/SupportsWebkitResponseTimeoutOption.java
index e4c04aeb6..7bfcfceca 100644
--- a/src/main/java/io/appium/java_client/ios/options/simulator/SupportsWebkitResponseTimeoutOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/simulator/SupportsWebkitResponseTimeoutOption.java
@@ -28,7 +28,10 @@
* Provides getters and setters for the {@code webkitResponseTimeout} capability.
*
* @param options type, used for chaining.
+ * @deprecated The capability has been removed from the XCUITest driver and has no effect.
+ * Use {@link io.appium.java_client.ios.options.webview.SupportsWebviewConnectTimeoutOption} instead.
*/
+@Deprecated
public interface SupportsWebkitResponseTimeoutOption> extends
Capabilities, CanSetCapability {
/**
diff --git a/src/main/java/io/appium/java_client/ios/options/wda/SupportsScreenshotQualityOption.java b/src/main/java/io/appium/java_client/ios/options/wda/SupportsScreenshotQualityOption.java
index 267723ffc..055ead931 100644
--- a/src/main/java/io/appium/java_client/ios/options/wda/SupportsScreenshotQualityOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/wda/SupportsScreenshotQualityOption.java
@@ -37,13 +37,13 @@ public interface SupportsScreenshotQualityOption> exten
String SCREENSHOT_QUALITY_OPTION = "screenshotQuality";
/**
- * Changes the quality of phone display screenshots following
- * xctest/xctimagequality Default value is 1. 0 is the highest and
- * 2 is the lowest quality. You can also change it via settings
- * command. 0 might cause OutOfMemory crash on high-resolution
- * devices like iPad Pro.
+ * Changes the quality of phone display screenshots. Supported values:
+ * 0 - lossless PNG, 1 - high-quality JPEG, 2 - low-quality JPEG,
+ * 3 - lossless HEIC (falls back to PNG if hardware HEIC encoding is not
+ * supported). The default is defined by the driver/WebDriverAgent version.
+ * You can also change it via settings command.
*
- * @param quality Quality value in range 0..2.
+ * @param quality Quality value in range 0..3.
* @return self instance for chaining.
*/
default T setScreenshotQuality(int quality) {
diff --git a/src/main/java/io/appium/java_client/ios/options/wda/SupportsSimpleIsVisibleCheckOption.java b/src/main/java/io/appium/java_client/ios/options/wda/SupportsSimpleIsVisibleCheckOption.java
index f51a9f6a1..060256a56 100644
--- a/src/main/java/io/appium/java_client/ios/options/wda/SupportsSimpleIsVisibleCheckOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/wda/SupportsSimpleIsVisibleCheckOption.java
@@ -28,7 +28,9 @@
* Provides getters and setters for the {@code simpleIsVisibleCheck} capability.
*
* @param options type, used for chaining.
+ * @deprecated The capability has been removed from the XCUITest driver and has no effect.
*/
+@Deprecated
public interface SupportsSimpleIsVisibleCheckOption> extends
Capabilities, CanSetCapability {
/**
diff --git a/src/main/java/io/appium/java_client/ios/options/wda/SupportsUsePrebuiltWdaOption.java b/src/main/java/io/appium/java_client/ios/options/wda/SupportsUsePrebuiltWdaOption.java
index 4ac639fad..6a6917c5c 100644
--- a/src/main/java/io/appium/java_client/ios/options/wda/SupportsUsePrebuiltWdaOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/wda/SupportsUsePrebuiltWdaOption.java
@@ -47,7 +47,8 @@ default T usePrebuiltWda() {
/**
* Skips the build phase of running the WDA app. Building is then the responsibility
- * of the user. Only works for Xcode 8+. Defaults to false.
+ * of the user. The derivedDataPath capability value, if set, is used as the
+ * {@code -derivedDataPath} xcodebuild argument. Defaults to false.
*
* @param value Whether to skip the build phase of running the WDA app.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/ios/options/wda/SupportsUsePreinstalledWdaOption.java b/src/main/java/io/appium/java_client/ios/options/wda/SupportsUsePreinstalledWdaOption.java
index 6e2ee3e50..f820b6955 100644
--- a/src/main/java/io/appium/java_client/ios/options/wda/SupportsUsePreinstalledWdaOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/wda/SupportsUsePreinstalledWdaOption.java
@@ -46,7 +46,9 @@ default T usePreinstalledWda() {
}
/**
- * Whether to launch a preinstalled WebDriverAgentRunner application using a custom XCTest API client.
+ * Whether to launch a preinstalled WebDriverAgentRunner application without xcodebuild.
+ * The runner is started via devicectl on iOS/tvOS 17+ (macOS hosts) or via RemoteXPC
+ * on iOS/tvOS 18+. If prebuiltWDAPath is set, that app bundle is installed first.
* Defaults to false.
*
* @param value Either true or false.
diff --git a/src/main/java/io/appium/java_client/ios/options/wda/SupportsUseSimpleBuildTestOption.java b/src/main/java/io/appium/java_client/ios/options/wda/SupportsUseSimpleBuildTestOption.java
index c02ba32b5..112fd6b0f 100644
--- a/src/main/java/io/appium/java_client/ios/options/wda/SupportsUseSimpleBuildTestOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/wda/SupportsUseSimpleBuildTestOption.java
@@ -28,7 +28,9 @@
* Provides getters and setters for the {@code useSimpleBuildTest} capability.
*
* @param options type, used for chaining.
+ * @deprecated The capability is no longer declared by the XCUITest driver.
*/
+@Deprecated
public interface SupportsUseSimpleBuildTestOption> extends
Capabilities, CanSetCapability {
/**
diff --git a/src/main/java/io/appium/java_client/ios/options/wda/SupportsWaitForQuiescenceOption.java b/src/main/java/io/appium/java_client/ios/options/wda/SupportsWaitForQuiescenceOption.java
index 4abfb3b92..2f27b9f54 100644
--- a/src/main/java/io/appium/java_client/ios/options/wda/SupportsWaitForQuiescenceOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/wda/SupportsWaitForQuiescenceOption.java
@@ -28,7 +28,10 @@
* Provides getters and setters for the {@code waitForQuiescence} capability.
*
* @param options type, used for chaining.
+ * @deprecated The capability has been removed from the XCUITest driver and has no effect.
+ * Use {@link SupportsWaitForIdleTimeoutOption} instead.
*/
+@Deprecated
public interface SupportsWaitForQuiescenceOption> extends
Capabilities, CanSetCapability {
/**
diff --git a/src/main/java/io/appium/java_client/ios/options/wda/SupportsWdaStartupRetriesOption.java b/src/main/java/io/appium/java_client/ios/options/wda/SupportsWdaStartupRetriesOption.java
index bf3710fce..25361b035 100644
--- a/src/main/java/io/appium/java_client/ios/options/wda/SupportsWdaStartupRetriesOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/wda/SupportsWdaStartupRetriesOption.java
@@ -38,7 +38,8 @@ public interface SupportsWdaStartupRetriesOption> exten
/**
* Number of times to try to build and launch WebDriverAgent onto the device.
- * Defaults to 2.
+ * Defaults to 2 for simulators and 1 for real devices. Does not apply to
+ * {@code webDriverAgentUrl} and {@code usePreinstalledWDA}.
*
* @param count Retries count.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/ios/options/webview/SupportsNativeWebTapStrictOption.java b/src/main/java/io/appium/java_client/ios/options/webview/SupportsNativeWebTapStrictOption.java
index 3617a6f24..177877f38 100644
--- a/src/main/java/io/appium/java_client/ios/options/webview/SupportsNativeWebTapStrictOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/webview/SupportsNativeWebTapStrictOption.java
@@ -37,7 +37,7 @@ public interface SupportsNativeWebTapStrictOption> exte
String NATIVE_WEB_TAP_STRICT_OPTION = "nativeWebTapStrict";
/**
- * Enforce native taps to be done by XCUITest driver rather than WebDriverAgent.
+ * Skip the additional logic that tries to match web view elements to native ones.
*
* @return self instance for chaining.
*/
@@ -46,10 +46,11 @@ default T nativeWebTapStrict() {
}
/**
- * Configure native taps to be done by XCUITest driver rather than WebDriverAgent.
- * Only applicable if nativeWebTap is enabled. false by default.
+ * Whether to skip the additional logic that tries to match web view elements
+ * to native ones. That logic may fail and slow down each tap. Only applicable
+ * if nativeWebTap is enabled. false by default.
*
- * @param value Whether native taps are done by XCUITest driver rather than WebDriverAgent.
+ * @param value Whether to skip matching web view elements to native ones.
* @return self instance for chaining.
*/
default T setNativeWebTapStrict(boolean value) {
@@ -57,7 +58,7 @@ default T setNativeWebTapStrict(boolean value) {
}
/**
- * Get whether native taps are done by XCUITest driver rather than WebDriverAgent.
+ * Get whether matching web view elements to native ones is skipped.
*
* @return True or false.
*/
diff --git a/src/main/java/io/appium/java_client/ios/options/webview/SupportsSafariAllowPopupsOption.java b/src/main/java/io/appium/java_client/ios/options/webview/SupportsSafariAllowPopupsOption.java
index 05626eba1..85c74dfa9 100644
--- a/src/main/java/io/appium/java_client/ios/options/webview/SupportsSafariAllowPopupsOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/webview/SupportsSafariAllowPopupsOption.java
@@ -46,7 +46,9 @@ default T safariAllowPopups() {
}
/**
- * Allow javascript to open new windows in Safari. Default keeps current sim setting.
+ * Allow javascript to open new windows in Safari.
+ * Default keeps the current setting. Real devices only since driver version 7.9.0;
+ * a new Safari instance must be launched on startup for this to take effect.
*
* @param value Whether to allow javascript to open popups in Safari.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/ios/options/webview/SupportsSafariIgnoreFraudWarningOption.java b/src/main/java/io/appium/java_client/ios/options/webview/SupportsSafariIgnoreFraudWarningOption.java
index d090f4cf4..7d5b2a01c 100644
--- a/src/main/java/io/appium/java_client/ios/options/webview/SupportsSafariIgnoreFraudWarningOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/webview/SupportsSafariIgnoreFraudWarningOption.java
@@ -47,7 +47,8 @@ default T safariIgnoreFraudWarning() {
/**
* Prevent Safari from showing a fraudulent website warning.
- * Default keeps current sim setting..
+ * Default keeps the current setting. Real devices only since driver version 7.9.0;
+ * a new Safari instance must be launched on startup for this to take effect.
*
* @param value Whether to prevent Safari from showing a fraudulent website warning.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/ios/options/webview/SupportsSafariInitialUrlOption.java b/src/main/java/io/appium/java_client/ios/options/webview/SupportsSafariInitialUrlOption.java
index 07ee46f71..a710583e6 100644
--- a/src/main/java/io/appium/java_client/ios/options/webview/SupportsSafariInitialUrlOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/webview/SupportsSafariInitialUrlOption.java
@@ -35,7 +35,8 @@ public interface SupportsSafariInitialUrlOption> extend
String SAFARI_INITIAL_URL_OPTION = "safariInitialUrl";
/**
- * Set initial safari url, default is a local welcome page.
+ * Set initial safari url, default is a local welcome page. An empty string skips
+ * the initial navigation. Ignored if the initialDeeplinkUrl capability is set.
*
* @param url Initial safari url.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/ios/options/webview/SupportsSafariOpenLinksInBackgroundOption.java b/src/main/java/io/appium/java_client/ios/options/webview/SupportsSafariOpenLinksInBackgroundOption.java
index 1569e8406..e3b5485dd 100644
--- a/src/main/java/io/appium/java_client/ios/options/webview/SupportsSafariOpenLinksInBackgroundOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/webview/SupportsSafariOpenLinksInBackgroundOption.java
@@ -47,7 +47,8 @@ default T safariOpenLinksInBackground() {
/**
* Whether Safari should allow links to open in new windows.
- * Default keeps current sim setting.
+ * Default keeps the current setting. Real devices only since driver version 7.9.0;
+ * a new Safari instance must be launched on startup for this to take effect.
*
* @param value Whether Safari should allow links to open in new windows.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/ios/options/webview/SupportsWebkitResponseTimeoutOption.java b/src/main/java/io/appium/java_client/ios/options/webview/SupportsWebkitResponseTimeoutOption.java
index 5371f2cfb..50d5bcccc 100644
--- a/src/main/java/io/appium/java_client/ios/options/webview/SupportsWebkitResponseTimeoutOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/webview/SupportsWebkitResponseTimeoutOption.java
@@ -28,7 +28,10 @@
* Provides getters and setters for the {@code webkitResponseTimeout} capability.
*
* @param options type, used for chaining.
+ * @deprecated The capability has been removed from the XCUITest driver and has no effect.
+ * Use {@link SupportsWebviewConnectTimeoutOption} instead.
*/
+@Deprecated
public interface SupportsWebkitResponseTimeoutOption> extends
Capabilities, CanSetCapability {
/**
@@ -37,13 +40,12 @@ public interface SupportsWebkitResponseTimeoutOption> e
String WEBKIT_RESPONSE_TIMEOUT_OPTION = "webkitResponseTimeout";
/**
- * (Real device only) Set the time to wait for a response from WebKit in
- * a Safari session. Defaults to 5000ms.
+ * Set the time to wait for a response from WebKit in a Safari session.
*
* @param timeout Timeout to wait for a response from WebKit in a Safari session.
* @return self instance for chaining.
*/
- default T setWebviewConnectTimeout(Duration timeout) {
+ default T setWebkitResponseTimeout(Duration timeout) {
return amend(WEBKIT_RESPONSE_TIMEOUT_OPTION, timeout.toMillis());
}
@@ -52,9 +54,32 @@ default T setWebviewConnectTimeout(Duration timeout) {
*
* @return Timeout value.
*/
- default Optional getWebviewConnectTimeout() {
+ default Optional getWebkitResponseTimeout() {
return Optional.ofNullable(
CapabilityHelpers.toDuration(getCapability(WEBKIT_RESPONSE_TIMEOUT_OPTION))
);
}
+
+ /**
+ * Set the time to wait for a response from WebKit in a Safari session.
+ *
+ * @param timeout Timeout to wait for a response from WebKit in a Safari session.
+ * @return self instance for chaining.
+ * @deprecated Use {@link #setWebkitResponseTimeout(Duration)} instead.
+ */
+ @Deprecated
+ default T setWebviewConnectTimeout(Duration timeout) {
+ return setWebkitResponseTimeout(timeout);
+ }
+
+ /**
+ * Get the timeout to wait for a response from WebKit in a Safari session.
+ *
+ * @return Timeout value.
+ * @deprecated Use {@link #getWebkitResponseTimeout()} instead.
+ */
+ @Deprecated
+ default Optional getWebviewConnectTimeout() {
+ return getWebkitResponseTimeout();
+ }
}
diff --git a/src/main/java/io/appium/java_client/ios/options/webview/SupportsWebviewConnectRetriesOption.java b/src/main/java/io/appium/java_client/ios/options/webview/SupportsWebviewConnectRetriesOption.java
index 7b5c1ba44..fb6c87d0d 100644
--- a/src/main/java/io/appium/java_client/ios/options/webview/SupportsWebviewConnectRetriesOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/webview/SupportsWebviewConnectRetriesOption.java
@@ -38,7 +38,7 @@ public interface SupportsWebviewConnectRetriesOption> e
/**
* Number of times to send connection message to remote debugger,
- * to get a webview. Default: 8.
+ * to get a webview. Default: 20. There is a 500ms delay between retries.
*
* @param retries Max retries count.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/ios/options/webview/SupportsWebviewConnectTimeoutOption.java b/src/main/java/io/appium/java_client/ios/options/webview/SupportsWebviewConnectTimeoutOption.java
index f81e92665..894453121 100644
--- a/src/main/java/io/appium/java_client/ios/options/webview/SupportsWebviewConnectTimeoutOption.java
+++ b/src/main/java/io/appium/java_client/ios/options/webview/SupportsWebviewConnectTimeoutOption.java
@@ -38,7 +38,7 @@ public interface SupportsWebviewConnectTimeoutOption> e
/**
* The time to wait for the initial presence of webviews in
- * MobileSafari or hybrid apps. Defaults to 0ms.
+ * MobileSafari or hybrid apps. Defaults to 5000ms.
*
* @param timeout Timeout to wait for the initial presence of webviews.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/mac/options/Mac2Options.java b/src/main/java/io/appium/java_client/mac/options/Mac2Options.java
index 4cc32403d..eb16f1ff0 100644
--- a/src/main/java/io/appium/java_client/mac/options/Mac2Options.java
+++ b/src/main/java/io/appium/java_client/mac/options/Mac2Options.java
@@ -30,7 +30,7 @@
* Provides options specific to the Appium Mac2 Driver.
*
* For more details, refer to the
- * capabilities documentation
+ * capabilities documentation
*/
public class Mac2Options extends BaseOptions implements
SupportsSystemPortOption,
@@ -78,8 +78,8 @@ private void setCommonOptions() {
/**
* An object containing either script or command key. The value of
* each key must be a valid AppleScript script or command to be
- * executed after before Mac2Driver session is started. See
- * https://github.com/appium/appium-mac2-driver#applescript-commands-execution
+ * executed before Mac2Driver session is started. See
+ * https://appium.github.io/appium-mac2-driver/latest/guides/applescript/
* for more details.
*
* @param script A valid AppleScript snippet.
@@ -104,7 +104,7 @@ public Optional getPrerun() {
* An object containing either script or command key. The value of
* each key must be a valid AppleScript script or command to be
* executed after Mac2Driver session is stopped. See
- * https://github.com/appium/appium-mac2-driver#applescript-commands-execution
+ * https://appium.github.io/appium-mac2-driver/latest/guides/applescript/
* for more details.
*
* @param script A valid AppleScript snippet.
diff --git a/src/main/java/io/appium/java_client/mac/options/SupportsArgumentsOption.java b/src/main/java/io/appium/java_client/mac/options/SupportsArgumentsOption.java
index f78da2b62..1e0cfe5fa 100644
--- a/src/main/java/io/appium/java_client/mac/options/SupportsArgumentsOption.java
+++ b/src/main/java/io/appium/java_client/mac/options/SupportsArgumentsOption.java
@@ -37,7 +37,7 @@ public interface SupportsArgumentsOption> extends
/**
* Array of application command line arguments. This capability is
- * only going to be applied if the application is not running on session startup.
+ * only going to be applied if the application is not running or is relaunched on session startup.
*
* @param arguments E.g. ["--help"].
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/mac/options/SupportsEnvironmentOption.java b/src/main/java/io/appium/java_client/mac/options/SupportsEnvironmentOption.java
index 41455c70b..148afe790 100644
--- a/src/main/java/io/appium/java_client/mac/options/SupportsEnvironmentOption.java
+++ b/src/main/java/io/appium/java_client/mac/options/SupportsEnvironmentOption.java
@@ -39,9 +39,9 @@ public interface SupportsEnvironmentOption> extends
* A dictionary of environment variables (name->value) that are going to be passed
* to the application under test on top of environment variables inherited from
* the parent process. This capability is only going to be applied if the application
- * is not running on session startup.
+ * is not running or is relaunched on session startup.
*
- * @param env E.g. ["--help"].
+ * @param env The environment variables as a name-to-value map.
* @return self instance for chaining.
*/
default T setEnvironment(Map env) {
diff --git a/src/main/java/io/appium/java_client/mac/options/SupportsShowServerLogsOption.java b/src/main/java/io/appium/java_client/mac/options/SupportsShowServerLogsOption.java
index 6ec16883f..a9a032dec 100644
--- a/src/main/java/io/appium/java_client/mac/options/SupportsShowServerLogsOption.java
+++ b/src/main/java/io/appium/java_client/mac/options/SupportsShowServerLogsOption.java
@@ -38,7 +38,7 @@ public interface SupportsShowServerLogsOption> extends
String SHOW_SERVER_LOGS_OPTION = "showServerLogs";
/**
- * Enforce showing of WDA server logs in the Appium log..
+ * Enforce showing of WebDriverAgentMac server logs in the Appium log.
*
* @return self instance for chaining.
*/
@@ -50,7 +50,7 @@ default T showServerLogs() {
* Set it to true in order to include xcodebuild output to the Appium
* server log. false by default.
*
- * @param value Whether to show WDA server logs in the Appium log.
+ * @param value Whether to show WebDriverAgentMac server logs in the Appium log.
* @return self instance for chaining.
*/
default T setShowServerLogs(boolean value) {
@@ -58,7 +58,7 @@ default T setShowServerLogs(boolean value) {
}
/**
- * Get whether to show WDA server logs in the Appium log.
+ * Get whether to show WebDriverAgentMac server logs in the Appium log.
*
* @return True or false.
*/
diff --git a/src/main/java/io/appium/java_client/remote/options/SupportsEnablePerformanceLoggingOption.java b/src/main/java/io/appium/java_client/remote/options/SupportsEnablePerformanceLoggingOption.java
index c1af681b0..1cfd60f61 100644
--- a/src/main/java/io/appium/java_client/remote/options/SupportsEnablePerformanceLoggingOption.java
+++ b/src/main/java/io/appium/java_client/remote/options/SupportsEnablePerformanceLoggingOption.java
@@ -35,7 +35,8 @@ public interface SupportsEnablePerformanceLoggingOption
String ENABLE_PERFORMANCE_LOGGING_OPTION = "enablePerformanceLogging";
/**
- * Set the app to enable performance logging.
+ * Set the app to enable performance logging. Safari performance logging on iOS,
+ * Chrome performance logging on Android (deprecated there, use {@code chromeLoggingPrefs}).
*
* @return self instance for chaining.
*/
@@ -44,9 +45,10 @@ default T enablePerformanceLogging() {
}
/**
- * Set whether the app logs performance.
+ * Set whether performance logging is enabled. Safari performance logging on iOS,
+ * Chrome performance logging on Android (deprecated there, use {@code chromeLoggingPrefs}).
*
- * @param bool is whether the app logs performance.
+ * @param bool is whether performance logging is enabled.
* @return self instance for chaining.
*/
default T setEnablePerformanceLogging(boolean bool) {
@@ -54,9 +56,9 @@ default T setEnablePerformanceLogging(boolean bool) {
}
/**
- * Get the app logs performance.
+ * Get whether performance logging is enabled.
*
- * @return true if the app logs performance.
+ * @return true if performance logging is enabled.
*/
default Optional isEnablePerformanceLogging() {
return Optional.ofNullable(toSafeBoolean(getCapability(ENABLE_PERFORMANCE_LOGGING_OPTION)));
diff --git a/src/main/java/io/appium/java_client/remote/options/SupportsEnforceAppInstallOption.java b/src/main/java/io/appium/java_client/remote/options/SupportsEnforceAppInstallOption.java
index e0b791a19..f9cbda190 100644
--- a/src/main/java/io/appium/java_client/remote/options/SupportsEnforceAppInstallOption.java
+++ b/src/main/java/io/appium/java_client/remote/options/SupportsEnforceAppInstallOption.java
@@ -47,8 +47,9 @@ default T enforceAppInstall() {
/**
* Allows setting whether the application under test is always reinstalled even
* if a newer version of it already exists on the device under test. False (Android), true (iOS) by default.
+ * On Android it has no effect if {@code noReset} is true.
*
- * @param value True to allow test packages installation.
+ * @param value True to always reinstall the application.
* @return self instance for chaining.
*/
default T setEnforceAppInstall(boolean value) {
diff --git a/src/main/java/io/appium/java_client/remote/options/SupportsEventTimingsOption.java b/src/main/java/io/appium/java_client/remote/options/SupportsEventTimingsOption.java
index d50f84179..773e71b2a 100644
--- a/src/main/java/io/appium/java_client/remote/options/SupportsEventTimingsOption.java
+++ b/src/main/java/io/appium/java_client/remote/options/SupportsEventTimingsOption.java
@@ -26,7 +26,9 @@
* Support for the {@code eventTimings} capability: whether Appium event timings are reported.
*
* @param the concrete options type, returned for chaining
+ * @deprecated The capability has been removed from Appium base driver and has no effect.
*/
+@Deprecated
public interface SupportsEventTimingsOption> extends
Capabilities, CanSetCapability {
/**
diff --git a/src/main/java/io/appium/java_client/remote/options/SupportsFullResetOption.java b/src/main/java/io/appium/java_client/remote/options/SupportsFullResetOption.java
index 1cc8ba7d9..594151e94 100644
--- a/src/main/java/io/appium/java_client/remote/options/SupportsFullResetOption.java
+++ b/src/main/java/io/appium/java_client/remote/options/SupportsFullResetOption.java
@@ -35,7 +35,7 @@ public interface SupportsFullResetOption> extends
String FULL_RESET_OPTION = "fullReset";
/**
- * Set the app to do a full reset.
+ * Set the app to do a full reset. Cannot be combined with {@code noReset}.
*
* @return self instance for chaining.
*/
@@ -44,7 +44,7 @@ default T fullReset() {
}
/**
- * Set whether the app does a full reset.
+ * Set whether the app does a full reset. Cannot be combined with {@code noReset}.
*
* @param bool is whether the app does a full reset.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/remote/options/SupportsNewCommandTimeoutOption.java b/src/main/java/io/appium/java_client/remote/options/SupportsNewCommandTimeoutOption.java
index c76c009f1..afcb7a20c 100644
--- a/src/main/java/io/appium/java_client/remote/options/SupportsNewCommandTimeoutOption.java
+++ b/src/main/java/io/appium/java_client/remote/options/SupportsNewCommandTimeoutOption.java
@@ -36,7 +36,7 @@ public interface SupportsNewCommandTimeoutOption> exten
String NEW_COMMAND_TIMEOUT_OPTION = "newCommandTimeout";
/**
- * Set the timeout for new commands.
+ * Set the timeout for new commands. It is sent in seconds; zero disables the timeout, 60 seconds by default.
*
* @param duration is the allowed time before seeing a new command.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/remote/options/SupportsNoResetOption.java b/src/main/java/io/appium/java_client/remote/options/SupportsNoResetOption.java
index 4b183a128..36e602da7 100644
--- a/src/main/java/io/appium/java_client/remote/options/SupportsNoResetOption.java
+++ b/src/main/java/io/appium/java_client/remote/options/SupportsNoResetOption.java
@@ -35,7 +35,7 @@ public interface SupportsNoResetOption> extends
String NO_RESET_OPTION = "noReset";
/**
- * Set the app not to do a reset.
+ * Set the app not to do a reset. Cannot be combined with {@code fullReset}.
*
* @return self instance for chaining.
*/
@@ -44,7 +44,7 @@ default T noReset() {
}
/**
- * Set whether the app does not do a reset.
+ * Set whether the app does not do a reset. Cannot be combined with {@code fullReset}.
*
* @param bool is whether the app does not do a reset.
* @return self instance for chaining.
diff --git a/src/main/java/io/appium/java_client/remote/options/SupportsOtherAppsOption.java b/src/main/java/io/appium/java_client/remote/options/SupportsOtherAppsOption.java
index 33e3f734e..6ffa53ab2 100644
--- a/src/main/java/io/appium/java_client/remote/options/SupportsOtherAppsOption.java
+++ b/src/main/java/io/appium/java_client/remote/options/SupportsOtherAppsOption.java
@@ -35,7 +35,7 @@ public interface SupportsOtherAppsOption> extends
/**
* Set the location of the app(s) to install before running a test.
*
- * @param apps is the apps to install.
+ * @param apps is the app path/URL, or a JSON array string to install multiple apps.
* @return self instance for chaining.
*/
default T setOtherApps(String apps) {
diff --git a/src/main/java/io/appium/java_client/remote/options/SupportsSkipLogCaptureOption.java b/src/main/java/io/appium/java_client/remote/options/SupportsSkipLogCaptureOption.java
index f3a93a434..15389eb37 100644
--- a/src/main/java/io/appium/java_client/remote/options/SupportsSkipLogCaptureOption.java
+++ b/src/main/java/io/appium/java_client/remote/options/SupportsSkipLogCaptureOption.java
@@ -24,6 +24,7 @@
/**
* Support for the {@code skipLogCapture} capability: whether the driver skips capturing device logs.
+ * Only the XCUITest driver defines it; Android drivers use {@code skipLogcatCapture}.
*
* @param the concrete options type, returned for chaining
*/
@@ -44,10 +45,10 @@ default T skipLogCapture() {
}
/**
- * Skips to start capturing system logs. It might improve network performance.
- * Log-related commands won't work if the capability is enabled. Defaults to false.
+ * Skips to start capturing system logs. Log-related commands won't work
+ * if the capability is enabled. Defaults to false.
*
- * @param value Set it to true in order to skip logcat capture.
+ * @param value Set it to true in order to skip system log capture.
* @return self instance for chaining.
*/
default T setSkipLogCapture(boolean value) {
diff --git a/src/main/java/io/appium/java_client/remote/options/SupportsUnhandledPromptBehaviorOption.java b/src/main/java/io/appium/java_client/remote/options/SupportsUnhandledPromptBehaviorOption.java
index fafb1b934..d32046423 100644
--- a/src/main/java/io/appium/java_client/remote/options/SupportsUnhandledPromptBehaviorOption.java
+++ b/src/main/java/io/appium/java_client/remote/options/SupportsUnhandledPromptBehaviorOption.java
@@ -33,9 +33,9 @@ public interface SupportsUnhandledPromptBehaviorOption>
String UNHANDLED_PROMPT_BEHAVIOR_OPTION = "unhandledPromptBehavior";
/**
- * Defines the current session’s page load strategy.
+ * Defines how unexpected user prompts (alerts) are handled in the current session.
*
- * @param strategy Page load strategy.
+ * @param strategy Unhandled prompt behavior.
* @return self instance for chaining.
*/
default T setUnhandledPromptBehavior(UnhandledPromptBehavior strategy) {
@@ -43,9 +43,9 @@ default T setUnhandledPromptBehavior(UnhandledPromptBehavior strategy) {
}
/**
- * Get the current session’s page load strategy.
+ * Get how unexpected user prompts (alerts) are handled in the current session.
*
- * @return Page load strategy.
+ * @return Unhandled prompt behavior.
*/
default Optional getUnhandledPromptBehavior() {
return Optional.ofNullable(getCapability(UNHANDLED_PROMPT_BEHAVIOR_OPTION))
diff --git a/src/main/java/io/appium/java_client/remote/options/W3CCapabilityKeys.java b/src/main/java/io/appium/java_client/remote/options/W3CCapabilityKeys.java
index a19491da1..da4ba1f04 100644
--- a/src/main/java/io/appium/java_client/remote/options/W3CCapabilityKeys.java
+++ b/src/main/java/io/appium/java_client/remote/options/W3CCapabilityKeys.java
@@ -39,6 +39,7 @@ public class W3CCapabilityKeys implements Predicate {
"^strictFileInteractability$",
"^timeouts$",
"^unhandledPromptBehavior$",
+ "^userAgent$",
"^webSocketUrl$") // from webdriver-bidi
.map(Pattern::compile)
.map(Pattern::asPredicate)
diff --git a/src/main/java/io/appium/java_client/safari/options/SupportsSafariAutomaticProfilingOption.java b/src/main/java/io/appium/java_client/safari/options/SupportsSafariAutomaticProfilingOption.java
index 86cd57972..2e002de00 100644
--- a/src/main/java/io/appium/java_client/safari/options/SupportsSafariAutomaticProfilingOption.java
+++ b/src/main/java/io/appium/java_client/safari/options/SupportsSafariAutomaticProfilingOption.java
@@ -38,7 +38,7 @@ public interface SupportsSafariAutomaticProfilingOption
String SAFARI_AUTOMATIC_PROFILING_OPTION = "safari:automaticProfiling";
/**
- * Enforces safaridriver to use Automatic Inspection.
+ * Enforces safaridriver to use Automatic Profiling.
*
* @return self instance for chaining.
*/
diff --git a/src/main/java/io/appium/java_client/safari/options/SupportsSafariDeviceUdidOption.java b/src/main/java/io/appium/java_client/safari/options/SupportsSafariDeviceUdidOption.java
index c81e57999..6d378e2b1 100644
--- a/src/main/java/io/appium/java_client/safari/options/SupportsSafariDeviceUdidOption.java
+++ b/src/main/java/io/appium/java_client/safari/options/SupportsSafariDeviceUdidOption.java
@@ -23,16 +23,16 @@
import java.util.Optional;
/**
- * Support for the {@code safari:deviceUdid} capability: the UDID of the device or simulator to run Safari on.
+ * Support for the {@code safari:deviceUDID} capability: the UDID of the device or simulator to run Safari on.
*
* @param the concrete options type, returned for chaining
*/
public interface SupportsSafariDeviceUdidOption> extends
Capabilities, CanSetCapability {
/**
- * Name of the {@code safari:deviceUdid} capability.
+ * Name of the {@code safari:deviceUDID} capability.
*/
- String SAFARI_DEVICE_UDID_OPTION = "safari:deviceUdid";
+ String SAFARI_DEVICE_UDID_OPTION = "safari:deviceUDID";
/**
* safaridriver will only create a session using hosts whose device UDID
diff --git a/src/main/java/io/appium/java_client/windows/options/SupportsAppArgumentsOption.java b/src/main/java/io/appium/java_client/windows/options/SupportsAppArgumentsOption.java
index 8e741ed1a..5f37ca3ca 100644
--- a/src/main/java/io/appium/java_client/windows/options/SupportsAppArgumentsOption.java
+++ b/src/main/java/io/appium/java_client/windows/options/SupportsAppArgumentsOption.java
@@ -48,8 +48,19 @@ default T setAppArguments(String args) {
* Get application arguments.
*
* @return Application arguments.
+ * @deprecated Misnamed getter, use {@link #getAppArguments()} instead.
*/
+ @Deprecated
default Optional setAppArguments() {
+ return getAppArguments();
+ }
+
+ /**
+ * Get application arguments.
+ *
+ * @return Application arguments.
+ */
+ default Optional getAppArguments() {
return Optional.ofNullable((String) getCapability(APP_ARGUMENTS_OPTION));
}
}
diff --git a/src/main/java/io/appium/java_client/windows/options/SupportsMsWaitForAppLaunchOption.java b/src/main/java/io/appium/java_client/windows/options/SupportsMsWaitForAppLaunchOption.java
index f57935d0e..8e766cc7d 100644
--- a/src/main/java/io/appium/java_client/windows/options/SupportsMsWaitForAppLaunchOption.java
+++ b/src/main/java/io/appium/java_client/windows/options/SupportsMsWaitForAppLaunchOption.java
@@ -51,7 +51,7 @@ default T setWaitForAppLaunch(Duration timeout) {
}
/**
- * Get the timeout used to retry Appium Windows Driver session startup.
+ * Get the time to wait after an app launch is initiated before attaching to it.
*
* @return The timeout value.
*/
diff --git a/src/main/java/io/appium/java_client/windows/options/WindowsOptions.java b/src/main/java/io/appium/java_client/windows/options/WindowsOptions.java
index bbac0822f..9d7d54e9d 100644
--- a/src/main/java/io/appium/java_client/windows/options/WindowsOptions.java
+++ b/src/main/java/io/appium/java_client/windows/options/WindowsOptions.java
@@ -29,6 +29,9 @@
/**
* https://github.com/appium/appium-windows-driver#usage.
+ *
+ * Note: appium-windows-driver is deprecated in favor of appium-wincore-driver,
+ * which has its own automation name and capability set.
*/
public class WindowsOptions extends BaseOptions implements
SupportsAppOption,
From d0d7e005eeed48927e83d4b7b7f06999aee17676 Mon Sep 17 00:00:00 2001
From: Mykola Mokhnach
Date: Sun, 11 Oct 2026 20:53:55 +0200
Subject: [PATCH 2/2] ci: read the Selenium snapshot version from the root
version.bzl
Selenium moved the Java version out of java/version.bzl (now only a
reference to VERSIONS["java"]) into the root version.bzl, so the snapshot
jobs resolved the version as "java" and failed dependency resolution.
Co-Authored-By: Claude Sonnet 5.5
---
.github/workflows/ci.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 2236993b3..d5b11682d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -71,7 +71,7 @@ jobs:
- name: Resolve Selenium snapshot version
if: matrix.selenium == 'snapshot'
run: |
- latest_snapshot=$(curl -sf https://raw.githubusercontent.com/SeleniumHQ/selenium/refs/heads/trunk/java/version.bzl | grep 'SE_VERSION' | sed 's/.*"\(.*\)".*/\1/')
+ latest_snapshot=$(curl -sf https://raw.githubusercontent.com/SeleniumHQ/selenium/refs/heads/trunk/version.bzl | grep '"java"' | sed 's/.*"java": *"\([^"]*\)".*/\1/')
echo ">>> $latest_snapshot"
echo "latest_snapshot=$latest_snapshot" >> "$GITHUB_ENV"