Skip to content

Commit 0a5b915

Browse files
authored
Merge branch 'master' into update-gradle9
2 parents 61e89ef + 9b84f90 commit 0a5b915

File tree

26 files changed

+163
-139
lines changed

26 files changed

+163
-139
lines changed

.github/workflows/ci.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
strategy:
3838
matrix:
3939
include:
40-
- java: 11
40+
- java: 17
4141
# Need to use specific (not `-latest`) version of macOS to be sure the required version of Xcode/simulator is available
4242
platform: macos-14
4343
e2e-tests: ios
@@ -59,7 +59,7 @@ jobs:
5959

6060
name: JDK ${{ matrix.java }} - ${{ matrix.platform }} ${{ matrix.e2e-tests }}
6161
steps:
62-
- uses: actions/checkout@v4
62+
- uses: actions/checkout@v5
6363

6464
- name: Enable KVM group perms
6565
if: matrix.e2e-tests == 'android' || matrix.e2e-tests == 'flutter-android'
@@ -69,7 +69,7 @@ jobs:
6969
sudo udevadm trigger --name-match=kvm
7070
7171
- name: Set up JDK ${{ matrix.java }}
72-
uses: actions/setup-java@v4
72+
uses: actions/setup-java@v5
7373
with:
7474
distribution: 'zulu'
7575
java-version: ${{ matrix.java }}
@@ -107,7 +107,7 @@ jobs:
107107
108108
- name: Install Node.js
109109
if: ${{ matrix.e2e-tests }}
110-
uses: actions/setup-node@v4
110+
uses: actions/setup-node@v5
111111
with:
112112
node-version: 'lts/*'
113113

.github/workflows/publish.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ jobs:
66
publish:
77
runs-on: ubuntu-latest
88
steps:
9-
- uses: actions/checkout@v4
9+
- uses: actions/checkout@v5
1010
- name: Set up Java
11-
uses: actions/setup-java@v4
11+
uses: actions/setup-java@v5
1212
with:
1313
java-version: '11'
1414
distribution: 'zulu'

CHANGELOG.md

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
_10.0.0_
9+
- **[DOCUMENTATION]**
10+
- Document the migration guide from v9 to v10 [#2331](https://github.com/appium/java-client/pull/2331)
11+
- updated maven central release badge [#2316](https://github.com/appium/java-client/pull/2316)
12+
- updated CI badge to use ci.yml workflow [#2317](https://github.com/appium/java-client/pull/2317)
13+
- **[BREAKING CHANGE]** [#2327](https://github.com/appium/java-client/pull/2327)
14+
- Removed all deprecated methods with Selenium's Location and LocationContext (these classes have been removed in Selenium 4.35.0)
15+
- **[ENHANCEMENTS]**
16+
- Proxy commands issues via RemoteWebElement [#2311](https://github.com/appium/java-client/pull/2311)
17+
- Automated Release to Maven Central Repository using JReleaser [#2313](https://github.com/appium/java-client/pull/2313)
18+
- **[BUG FIX]**
19+
- Possible NPE in initBiDi() [#2325](https://github.com/appium/java-client/pull/2325)
20+
- **[DEPENDENCY CHANGE]**
21+
- Bump minimum Selenium version to 4.35.0 [#2327](https://github.com/appium/java-client/pull/2327)
22+
- Bump org.junit.jupiter:junit-jupiter from 5.13.2 to 5.13.3 [#2314](https://github.com/appium/java-client/pull/2314)
23+
- Bump io.github.bonigarcia:webdrivermanager [#2322](https://github.com/appium/java-client/pull/2322)
24+
- Bump com.gradleup.shadow from 8.3.7 to 8.3.8 [#2315](https://github.com/appium/java-client/pull/2315)
25+
- Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0 [#2320](https://github.com/appium/java-client/pull/2320)
26+
827
_9.5.0_
928
- **[ENHANCEMENTS]**
1029
- Allow extension capability keys to contain dot characters [#2271](https://github.com/appium/java-client/pull/2271)
@@ -667,14 +686,14 @@ _8.6.0_
667686

668687
*6.0.0-BETA1*
669688
- **[ENHANCEMENT]** **[REFACTOR]** **[BREAKING CHANGE]** **[MAJOR CHANGE]** Improvements of the TouchActions API [#756](https://github.com/appium/java-client/pull/756), [#760](https://github.com/appium/java-client/pull/760):
670-
- `io.appium.java_client.touch.ActionOptions` and sublasses were added
689+
- `io.appium.java_client.touch.ActionOptions` and subclasses were added
671690
- old methods of the `TouchActions` were marked `@Deprecated`
672691
- new methods which take new options.
673-
- **[ENHANCEMENT]**. Appium drivr local service uses default process environment by default. [#753](https://github.com/appium/java-client/pull/753)
692+
- **[ENHANCEMENT]**. Appium driver local service uses default process environment by default. [#753](https://github.com/appium/java-client/pull/753)
674693
- **[BUG FIX]**. Removed 'set' prefix from waitForIdleTimeout setting. [#754](https://github.com/appium/java-client/pull/754)
675694
- **[BUG FIX]**. The asking for session details was optimized. Issue report [764](https://github.com/appium/java-client/issues/764).
676695
FIX [#769](https://github.com/appium/java-client/pull/769)
677-
- **[BUG FIX]** **[REFACTOR]**. Inconcistent MissingParameterException was removed. Improvements of MultiTouchAction. Report: [#102](https://github.com/appium/java-client/issues/102). FIX [#772](https://github.com/appium/java-client/pull/772)
696+
- **[BUG FIX]** **[REFACTOR]**. Inconsistent MissingParameterException was removed. Improvements of MultiTouchAction. Report: [#102](https://github.com/appium/java-client/issues/102). FIX [#772](https://github.com/appium/java-client/pull/772)
678697
- **[DEPENDENCY UPDATES]**
679698
- `org.apache.commons:commons-lang3` was updated to 3.7
680699
- `commons-io:commons-io` was updated to 2.6

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@
66

77
This is the Java language bindings for writing Appium Tests that conform to [WebDriver Protocol](https://w3c.github.io/webdriver/)
88

9+
10+
## v9 to v10 Migration
11+
12+
Follow the [v9 to v10 Migration Guide](./docs/v9-to-v10-migration-guide.md) to streamline the migration process.
13+
914
## v8 to v9 Migration
1015

1116
Since v9 the client only supports Java 11 and above.
@@ -95,6 +100,7 @@ dependencies {
95100
### Compatibility Matrix
96101
Appium Java Client | Selenium client
97102
----------------------------------------------------------------------------------------------------|-----------------------------
103+
`10.0.0` | `4.35.0`
98104
`9.5.0` | `4.34.0`
99105
`9.4.0` | `4.26.0`, `4.27.0`, `4.28.0`, `4.28.1`, `4.29.0`, `4.30.0`, `4.31.0`, `4.32.0`, `4.33.0`
100106
`9.2.1`(known issues: appium/java-client#2145, appium/java-client#2146), `9.2.2`, `9.2.3`, `9.3.0` | `4.19.0`, `4.19.1`, `4.20.0`, `4.21.0`, `4.22.0`, `4.23.0`, `4.23.1`, `4.24.0`, `4.25.0`, `4.26.0`, `4.27.0`

build.gradle

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ plugins {
77
id 'maven-publish'
88
id 'jacoco'
99
id 'signing'
10-
id 'org.owasp.dependencycheck' version '12.1.3'
11-
id 'com.gradleup.shadow' version '8.3.8'
12-
id 'org.jreleaser' version '1.19.0'
10+
id 'org.owasp.dependencycheck' version '12.1.6'
11+
id 'com.gradleup.shadow' version '9.2.2'
12+
id 'org.jreleaser' version '1.20.0'
1313
}
1414

1515
ext {
@@ -42,8 +42,8 @@ java {
4242
}
4343

4444
dependencies {
45-
compileOnly 'org.projectlombok:lombok:1.18.38'
46-
annotationProcessor 'org.projectlombok:lombok:1.18.38'
45+
compileOnly 'org.projectlombok:lombok:1.18.42'
46+
annotationProcessor 'org.projectlombok:lombok:1.18.42'
4747

4848
if (project.hasProperty("isCI")) {
4949
api "org.seleniumhq.selenium:selenium-api:${seleniumVersion}"
@@ -69,7 +69,7 @@ dependencies {
6969
}
7070
}
7171
}
72-
implementation 'com.google.code.gson:gson:2.13.1'
72+
implementation 'com.google.code.gson:gson:2.13.2'
7373
implementation "org.slf4j:slf4j-api:${slf4jVersion}"
7474
implementation 'org.jspecify:jspecify:1.0.0'
7575
}
@@ -222,7 +222,7 @@ testing {
222222
test {
223223
dependencies {
224224
implementation "org.seleniumhq.selenium:selenium-chrome-driver:${seleniumVersion}"
225-
implementation('io.github.bonigarcia:webdrivermanager:6.2.0') {
225+
implementation('io.github.bonigarcia:webdrivermanager:6.3.2') {
226226
exclude group: 'org.seleniumhq.selenium'
227227
}
228228
}
@@ -266,7 +266,7 @@ testing {
266266
dependencies {
267267
implementation project()
268268
implementation(sourceSets.test.output)
269-
implementation('io.github.bonigarcia:webdrivermanager:6.2.0') {
269+
implementation('io.github.bonigarcia:webdrivermanager:6.3.2') {
270270
exclude group: 'org.seleniumhq.selenium'
271271
}
272272
}

docs/Advanced-By.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ XCUIElementTypeCell[$label == 'here'$]
4848
#### Handling Quote Marks
4949

5050
Most of the time, you can treat pairs of single quotes or double quotes
51-
interchangably. If you're searching with a string that contains quote marks,
51+
interchangeably. If you're searching with a string that contains quote marks,
5252
though, you [need to be careful](https://stackoverflow.com/q/14116217).
5353

5454
```c

docs/How-to-report-an-issue.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Be sure that it is not a server-side problem if you are facing something that looks like a bug
22

3-
The Appium Java client is the thin client which just sends requests and receives responces generally.
3+
The Appium Java client is the thin client which just sends requests and receives responses generally.
44
Be sure that this bug is not reported [here](https://github.com/appium/appium/issues) and/or there is
55
no progress on this issue.
66

@@ -13,8 +13,8 @@ If it is the feature request then there should be the description of this featur
1313

1414
### Environment (bug report)
1515

16-
* java client build version or git revision if you use some shapshot:
17-
* Appium server version or git revision if you use some shapshot:
16+
* java client build version or git revision if you use some snapshot:
17+
* Appium server version or git revision if you use some snapshot:
1818
* Desktop OS/version used to run Appium if necessary:
1919
* Node.js version (unless using Appium.app|exe) or Appium CLI or Appium.app|exe:
2020
* Mobile platform/version under test:
@@ -32,7 +32,7 @@ You can git clone https://github.com/appium/appium/tree/master/sample-code or ht
3232
Also you can create a [gist](https://gist.github.com) with pasted java code sample or paste it at ussue description using markdown. About markdown please read [Mastering markdown](https://guides.github.com/features/mastering-markdown/) and
3333
[Writing on GitHub](https://help.github.com/categories/writing-on-github/)
3434

35-
### Ecxeption stacktraces (bug report)
35+
### Exception stacktraces (bug report)
3636

3737
There should be created a [gist](https://gist.github.com) with pasted stacktrace of exception thrown by java.
3838

docs/Page-objects.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ WebElement someElement;
1616
List<WebElement> someElements;
1717
```
1818

19-
# If there is need to use convinient locators for mobile native applications then the following is available:
19+
# If there is need to use convenient locators for mobile native applications then the following is available:
2020

2121
```java
2222
import io.appium.java_client.android.AndroidElement;
@@ -324,13 +324,13 @@ A typical page object could look like:
324324

325325
```java
326326
public class RottenTomatoesScreen {
327-
//convinient locator
327+
//convenient locator
328328
private List<AndroidElement> titles;
329329

330-
//convinient locator
330+
//convenient locator
331331
private List<AndroidElement> scores;
332332

333-
//convinient locator
333+
//convenient locator
334334
private List<AndroidElement> castings;
335335
//element declaration goes on
336336

@@ -371,13 +371,13 @@ public class Movie extends Widget{
371371
super(element);
372372
}
373373

374-
//convinient locator
374+
//convenient locator
375375
private AndroidElement title;
376376

377-
//convinient locator
377+
//convenient locator
378378
private AndroidElement score;
379379

380-
//convinient locator
380+
//convenient locator
381381
private AndroidElement casting;
382382

383383
public String getTitle(params){
@@ -404,7 +404,7 @@ So, now page object looks
404404
```java
405405
public class RottenTomatoesScreen {
406406

407-
@AndroidFindBy(a locator which convinient to find a single movie-root - element)
407+
@AndroidFindBy(a locator which convenient to find a single movie-root - element)
408408
private List<Movie> movies;
409409

410410
//element declaration goes on
@@ -427,7 +427,7 @@ public class RottenTomatoesScreen {
427427
Then
428428
```java
429429
//the class is annotated !!!
430-
@AndroidFindBy(a locator which convinient to find a single movie-root - element)
430+
@AndroidFindBy(a locator which convenient to find a single movie-root - element)
431431
public class Movie extends Widget{
432432
...
433433
}
@@ -658,7 +658,7 @@ This use case has some restrictions;
658658

659659
- All classes which are declared by the OverrideWidget annotation should be subclasses of the class declared by field
660660

661-
- All classes which are declared by the OverrideWidget should not be abstract. If a declared class is overriden partially like
661+
- All classes which are declared by the OverrideWidget should not be abstract. If a declared class is overridden partially like
662662

663663
```java
664664
//above is the other field declaration

docs/environment.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@ Remember to reload the config after it has been changed by restarting the comman
3232
Also, it is possible to set variables on [per-process](https://stackoverflow.com/questions/10856129/setting-an-environment-variable-before-a-command-in-bash-not-working-for-second) basis.
3333
This might be handy if Appium is set up to start automatically with the operating system, because on early stages of system initialization it is possible that the "usual" environment has not been loaded yet.
3434

35-
In case the Appium process is started programatically, for example with java client's `AppiumDriverLocalService` helper class, then it might be necessary to setup the environment [in the client code](https://github.com/appium/java-client/pull/753), because prior to version 6.0 the client does not inherit it from the parent process by default.
35+
In case the Appium process is started programmatically, for example with java client's `AppiumDriverLocalService` helper class, then it might be necessary to setup the environment [in the client code](https://github.com/appium/java-client/pull/753), because prior to version 6.0 the client does not inherit it from the parent process by default.

docs/v9-to-v10-migration-guide.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
This is the list of main changes between major versions 9 and 10 of Appium
2+
java client. This list should help you to successfully migrate your
3+
existing automated tests codebase.
4+
5+
6+
## The minimum supported Selenium version is set to 4.35.0
7+
8+
- Selenium versions below 4.35.0 won't work with Appium java client 10+.
9+
Check the [Compatibility Matrix](../README.md#compatibility-matrix) for more
10+
details about versions compatibility.
11+
12+
## Removed previously deprecated items
13+
14+
- `org.openqa.selenium.remote.html5.RemoteLocationContext`, `org.openqa.selenium.html5.Location` and
15+
`org.openqa.selenium.html5.LocationContext` imports have been removed since they don't exist
16+
in Selenium lib anymore. Use appropriate replacements from this library instead for APIs and
17+
interfaces that were using deprecated classes, like `io.appium.java_client.Location`.

0 commit comments

Comments
 (0)