You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Aug 16, 2025. It is now read-only.
Copy file name to clipboardExpand all lines: README.md
+21-6Lines changed: 21 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ The WebDriver server is on port 4622. If you build it yourself, you can change t
6
6
7
7
## Requirements
8
8
* Running: Mac OS X 10.7 or later.
9
-
* Building: Xcode 7.2.1 or later.
9
+
* Building: Xcode 7.2.1 or later.
10
10
11
11
## Installation
12
12
Mac OS X does not allow an application to use the Accessibility API without permission, so you have to enable it manually.
@@ -33,6 +33,21 @@ Newer macOS requires 64 bit binary.
33
33
You can build this repository manually to match for your environment with Xcode.
34
34
Then, please copy `AppiumForMac.app` in `/Users/<username>/Library/Developer/Xcode/DerivedData/AppiumForMac-xxxxxxxx/Build/Products/Debug/AppiumForMac.app` to `/Applications`.
35
35
36
+
## Release
37
+
38
+
Please push a tag with `v` prefix like `v0.5.0`.
39
+
Then, a GitHub Actions will push a new `AppiumForMac.app` as the version as a draft on [Release page](https://github.com/appium/appium-for-mac/releases).
40
+
Once you convert the draft to publish, the tag will appear on the release page.
41
+
42
+
### Download binaries built on CI
43
+
44
+
[Release page](https://github.com/appium/appium-for-mac/releases) provides `AppiumForMac.app` for each tag.
45
+
You also can get the latest `AppiumForMac.app` on each PR.
46
+
47
+
If you could not start `AppiumForMac.app` by security limitation by macOS,
48
+
please try out `xattr -cr /path/to/AppiumForMac.app` command once to remove extende attributes on macOS.
49
+
Then, you probably open the `AppiumForMac.app` without error.
50
+
36
51
## New Features For Scripters (as of April 2017)
37
52
38
53
You can see the new features in the calculator.py example script.
@@ -116,7 +131,7 @@ Bad examples:
116
131
117
132
118
133
### Automatic AXPath Recording
119
-
Generating an AXPath for an element is easy: while AppiumForMac is running, just use the mouse to point to an element, then press the fn (function) key for a couple of seconds. AppiumForMac will build the AXPath of the element on screen, and copy it to the clipboard. You can then paste it into your script.
134
+
Generating an AXPath for an element is easy: while AppiumForMac is running, just use the mouse to point to an element, then press the fn (function) key for a couple of seconds. AppiumForMac will build the AXPath of the element on screen, and copy it to the clipboard. You can then paste it into your script.
120
135
121
136
### Session Kill Switch
122
137
If your script has gone off the rails, you need to stop it. But if a script is running, it can keep typing and clicking as you try to cancel it. Now, while a session is in progress, you can press the fn (function) key for a couple of seconds. AppiumForMac will cancel any open sessions. Your script will receive a "no such session" error.
@@ -127,19 +142,19 @@ AppiumForMac sessions have several new properties. See below for a description o
127
142
#### Getting and Setting Properties with a Cookie
128
143
Each cookie is a dictionary with at least two keys: 'name' and 'value'. The Selenium commands are: get_cookies, get_cookie(), and addCookie().
129
144
130
-
1. To get all cookies, use driver.get_cookies(). This will return an array of cookie dictionaries.
145
+
1. To get all cookies, use driver.get_cookies(). This will return an array of cookie dictionaries.
131
146
1. To get one cookie, use driver.get_cookie('cookieName'). This will return the cookie with the name 'cookieName'.
132
147
1. To set a cookie, use driver.add_cookie({'name': 'cookieName', 'value': 'cookieValue'}).
133
148
134
149
#### Implicit Timeouts
135
150
AppiumForMac supports standard implicit timeouts when finding an element. The default is 0.0 seconds, that is, there will be only one attempt.
136
151
137
-
For example, to set a 20.5 second timeout, use driver.add_cookie({'name': 'implicit_timeout', 'value': 20.5}).
152
+
For example, to set a 20.5 second timeout, use driver.add_cookie({'name': 'implicit_timeout', 'value': 20.5}).
138
153
139
154
#### Loop Delay
140
155
During an implicit timeout to find an element, you can specify how long to wait between attempts. The default is 1.0 seconds. The loop delay occurs _after_ each attempt, so if the element is found on the first attempt, there will be no delay. The total waiting time will not exceed implicit_timeout, regardless of the loop_delay value.
141
156
142
-
For example, to set a 1.7 second loop delay, use driver.add_cookie({'name': 'loop_delay', 'value': 1.7}).
157
+
For example, to set a 1.7 second loop delay, use driver.add_cookie({'name': 'loop_delay', 'value': 1.7}).
143
158
144
159
#### Command Delay
145
160
This provides a simple way to slow down a script if needed, e.g. for debugging. It specifies an arbitrary delay _before_ each command. The default is 0.0 seconds so your script runs at full speed!
@@ -176,7 +191,7 @@ The name of each handler is dynamically constructed from the http request. All y
176
191
#### Creating a new command handler
177
192
178
193
1. Go to AfMHandlers.m.
179
-
1. Find an existing handler method. You might want to find one that is similar to the new command you want to add.
194
+
1. Find an existing handler method. You might want to find one that is similar to the new command you want to add.
180
195
1. Copy the handler method to the clipboard.
181
196
1. Find the commented out stub for the new handler method and paste at that location.
182
197
1. Rename your new handler, following the naming pattern for the other handlers.
0 commit comments