mirror of
https://github.com/appium/appium.git
synced 2026-11-10 20:05:42 +08:00
Compare commits
23
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
743ca72e70 | ||
|
|
082396ce19 | ||
|
|
4b2342f25e | ||
|
|
86074b9b6c | ||
|
|
6f2212a215 | ||
|
|
077993ce01 | ||
|
|
6f32745e71 | ||
|
|
88e2d02454 | ||
|
|
dd3fdf329e | ||
|
|
33ab151d04 | ||
|
|
9d8779a224 | ||
|
|
a1ef920af1 | ||
|
|
149ce03b84 | ||
|
|
09437412c8 | ||
|
|
0256991162 | ||
|
|
604170a7ad | ||
|
|
509ab16612 | ||
|
|
6184bf96b6 | ||
|
|
12e28c9e08 | ||
|
|
090640e348 | ||
|
|
a5c6f1c80e | ||
|
|
8d181dd19f | ||
|
|
eb189d4588 |
@@ -1,3 +1,12 @@
|
||||
CHANGES IN VERSION 1.19.1(FROM 1.19.0)
|
||||
===================================
|
||||
|
||||
Appium 1.19.1 is a patch release
|
||||
|
||||
### iOS(XCUITest)
|
||||
|
||||
Patches "missing target for targetId" bug in Safari tests (see [#14867](https://github.com/appium/appium/issues/14867))
|
||||
|
||||
CHANGES IN VERSION 1.19.0 (FROM 1.18.3)
|
||||
===================================
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ short_description: Place a file onto the device in a particular place
|
||||
example_usage:
|
||||
java:
|
||||
|
|
||||
driver.pushFile("/path/to/device/foo.bar", new File("/Users/johndoe/files/foo.bar"));
|
||||
driver.pushFile("/data/local/tmp/foo.bar", new File("/Users/johndoe/files/foo.bar"));
|
||||
python:
|
||||
|
|
||||
dest_path = '/data/local/tmp/test_push_file.txt'
|
||||
@@ -13,23 +13,23 @@ example_usage:
|
||||
self.driver.push_file(dest_path, base64.b64encode(data).decode('utf-8'))
|
||||
javascript_wd:
|
||||
|
|
||||
await driver.pushFileToDevice('/path/to/device/foo.bar', 'QXJlIHlvdXIgYmVlcnMgb2theT8=');
|
||||
await driver.pushFileToDevice('/data/local/tmp/foo.bar', 'QXJlIHlvdXIgYmVlcnMgb2theT8=');
|
||||
javascript_wdio:
|
||||
|
|
||||
let data = new Buffer("Hello World").toString('base64');
|
||||
driver.pushFile('/data/local/tmp/file.txt', data);
|
||||
ruby:
|
||||
|
|
||||
push_file('/path/to/device/foo.bar', File.read('path/to/file.png'))
|
||||
push_file('/data/local/tmp/foo.bar', File.read('path/to/file.png'))
|
||||
ruby_core:
|
||||
|
|
||||
@driver.push_file('/path/to/device/foo.bar', File.read('path/to/file.png'))
|
||||
@driver.push_file('/data/local/tmp/foo.bar', File.read('path/to/file.png'))
|
||||
php:
|
||||
|
|
||||
$driver->pushFile('/path/to/device/foo.bar', 'QXJlIHlvdXIgYmVlcnMgb2theT8=');
|
||||
$driver->pushFile('/data/local/tmp/foo.bar', 'QXJlIHlvdXIgYmVlcnMgb2theT8=');
|
||||
csharp:
|
||||
|
|
||||
driver.PushFile("/path/to/device/foo.bar", new FileInfo("/Users/johndoe/files/foo.bar"))
|
||||
driver.PushFile("/data/local/tmp/foo.bar", new FileInfo("/Users/johndoe/files/foo.bar"))
|
||||
|
||||
client_docs:
|
||||
java: "https://appium.github.io/java-client/io/appium/java_client/android/PushesFiles.html#pushFile-java.lang.String-java.io.File-"
|
||||
|
||||
@@ -42,8 +42,8 @@ example_usage:
|
||||
action.Perform();
|
||||
|
||||
client_docs:
|
||||
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#doubleTap-org.openqa.selenium.WebElement-"
|
||||
python: "https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.double_tap"
|
||||
java: "https://www.selenium.dev/selenium/docs/api/java/overview-summary.html"
|
||||
python: "https://selenium-python.readthedocs.io/api.html?highlight=tap_and_hold#selenium.webdriver.common.touch_actions.TouchActions.double_tap"
|
||||
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L425"
|
||||
javascript_wdio: "https://webdriver.io/docs/api/jsonwp.html#touchdoubleclick"
|
||||
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:double_tap"
|
||||
|
||||
@@ -38,7 +38,7 @@ example_usage:
|
||||
|
||||
client_docs:
|
||||
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#flick-org.openqa.selenium.WebElement-int-int-int-"
|
||||
python: "https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.flick_element"
|
||||
python: "https://selenium-python.readthedocs.io/api.html#selenium.webdriver.common.touch_actions.TouchActions.flick_element"
|
||||
javascript_wdio: "https://webdriver.io/docs/api/jsonwp.html#touchflick"
|
||||
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1513"
|
||||
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:flick"
|
||||
|
||||
@@ -45,7 +45,7 @@ example_usage:
|
||||
|
||||
client_docs:
|
||||
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#longPress-org.openqa.selenium.WebElement-"
|
||||
python: "https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.long_press"
|
||||
python: "https://selenium-python.readthedocs.io/api.html#selenium.webdriver.common.touch_actions.TouchActions.long_press"
|
||||
javascript_wdio: "https://webdriver.io/docs/api/mjsonwp.html#touchperform"
|
||||
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1531"
|
||||
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:long_press"
|
||||
|
||||
@@ -52,7 +52,7 @@ example_usage:
|
||||
|
||||
client_docs:
|
||||
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#down-int-int-"
|
||||
python: "https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.move"
|
||||
python: "https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common.touch_actions"
|
||||
javascript_wdio: "https://webdriver.io/docs/api/mjsonwp.html#multitouchperform"
|
||||
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1531"
|
||||
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:move"
|
||||
|
||||
@@ -39,7 +39,7 @@ example_usage:
|
||||
|
||||
client_docs:
|
||||
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#scroll-int-int-"
|
||||
python: "https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.scroll"
|
||||
python: "https://selenium-python.readthedocs.io/api.html#selenium.webdriver.common.touch_actions.TouchActions.scroll"
|
||||
javascript_wdio: "https://webdriver.io/docs/api/jsonwp.html#touchscroll"
|
||||
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L425"
|
||||
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:scroll"
|
||||
|
||||
@@ -48,7 +48,7 @@ example_usage:
|
||||
|
||||
client_docs:
|
||||
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#down-int-int-"
|
||||
python: "https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.tap_and_hold"
|
||||
python: "https://selenium-python.readthedocs.io/api.html?highlight=tap_and_hold#selenium.webdriver.common.touch_actions.TouchActions.tap_and_hold"
|
||||
javascript_wdio: "https://webdriver.io/docs/api/jsonwp.html#touchdown"
|
||||
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1546"
|
||||
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/TouchActionBuilder#down-instance_method"
|
||||
|
||||
@@ -48,7 +48,7 @@ example_usage:
|
||||
|
||||
client_docs:
|
||||
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#up-int-int-"
|
||||
python: "https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.release"
|
||||
python: "https://selenium-python.readthedocs.io/api.html#selenium.webdriver.common.touch_actions.TouchActions.release"
|
||||
javascript_wdio: "https://webdriver.io/docs/api/jsonwp.html#touchup"
|
||||
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1546"
|
||||
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:up"
|
||||
|
||||
@@ -90,12 +90,12 @@ example_usage:
|
||||
AndroidDriver<AndroidElement> driver = new AndroidDriver<AndroidElement>(new Uri("http://127.0.0.1:4723/wd/hub"), appiumOptions);
|
||||
|
||||
client_docs:
|
||||
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/remote/server/DefaultSession.html#createSession-org.openqa.selenium.remote.server.DriverFactory-org.openqa.selenium.remote.server.Clock-org.openqa.selenium.remote.SessionId-org.openqa.selenium.Capabilities-"
|
||||
java: "https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/WebDriver.html"
|
||||
python: "http://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webelement.WebElement.clear"
|
||||
javascript_wdio: "https://webdriver.io/docs/api/webdriver.html#newsession"
|
||||
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1780"
|
||||
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element:clear"
|
||||
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element:clear"
|
||||
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver"
|
||||
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver"
|
||||
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
|
||||
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ example_usage:
|
||||
ICapabilities caps = driver.Capabilities;
|
||||
|
||||
client_docs:
|
||||
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/remote/server/ActiveSessions.html#get-org.openqa.selenium.remote.SessionId-"
|
||||
java: "https://www.selenium.dev/selenium/docs/api/java/overview-summary.html"
|
||||
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.session.Session.session"
|
||||
javascript_wdio: "https://webdriver.io/docs/api/jsonwp.html#getsession"
|
||||
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L227"
|
||||
|
||||
@@ -23,7 +23,6 @@ git clone https://github.com/appium/appium.git
|
||||
cd appium
|
||||
npm install
|
||||
npm run build
|
||||
npm run authorize-ios # for ios only
|
||||
node .
|
||||
```
|
||||
```center
|
||||
@@ -31,7 +30,6 @@ git clone https://github.com/appium/appium.git
|
||||
cd appium
|
||||
npm install
|
||||
npm run build # 需要gulp,往下看
|
||||
npm run authorize-ios # 仅iOS
|
||||
node .
|
||||
```
|
||||
|
||||
@@ -74,31 +72,6 @@ node .
|
||||
|
||||
完整的参数列表,请参考[the server documentation](/docs/cn/writing-running-appium/server-args.md)
|
||||
|
||||
|
||||
#### Hacking with Appium for iOS
|
||||
|
||||
#### 鼓捣 iOS 上的Appium
|
||||
|
||||
为了避免启动iOS应用程序时可能出现的安全对话框,您必须通过以下两种方式之一修改 `/etc/authorization` 文件:
|
||||
|
||||
1. 手动修改 `/etc/authorization` 文件中的 `<key>system.privilege.taskport</key>` 下的 `<allow-root>`的值为 `<true/>`。
|
||||
2. 运行以下命令,为您自动修改 `/etc/authorization` 文件:
|
||||
|
||||
```center
|
||||
sudo npm run authorize-ios
|
||||
```
|
||||
|
||||
|
||||
此时,运行:
|
||||
|
||||
```center
|
||||
rm -rf node-modules
|
||||
npm install
|
||||
npm run build
|
||||
```
|
||||
|
||||
现在你的 Appium 实例已经准备好了。运行 `node .` 以启动Appium服务器。
|
||||
|
||||
#### 鼓捣 Android 上的Appium
|
||||
|
||||
通过运行以下命令配置Appium:
|
||||
|
||||
@@ -209,7 +209,7 @@ simply type into a text field and check that the correct text was entered:
|
||||
const field = await client.$("android.widget.EditText");
|
||||
await field.setValue("Hello World!");
|
||||
const value = await field.getText();
|
||||
assert.equal(value, "Hello World!");
|
||||
assert.strictEqual(value, "Hello World!");
|
||||
```
|
||||
|
||||
What's going on here is that after creating a session and launching our app,
|
||||
@@ -245,7 +245,7 @@ async function main () {
|
||||
const field = await client.$("android.widget.EditText");
|
||||
await field.setValue("Hello World!");
|
||||
const value = await field.getText();
|
||||
assert.equal(value,"Hello World!");
|
||||
assert.strictEqual(value,"Hello World!");
|
||||
|
||||
await client.deleteSession();
|
||||
}
|
||||
|
||||
@@ -107,3 +107,6 @@ Settings are implemented via the following API endpoints:
|
||||
| `boundElementsByIndex` | Whether to look up elements with [`allElementsBoundByAccessibilityElement`](https://developer.apple.com/documentation/xctest/xcuielementquery/1500816-allelementsboundbyaccessibilitye) (default) or [`allElementsBoundByIndex`](https://developer.apple.com/documentation/xctest/xcuielementquery/1500945-allelementsboundbyindex). [This Stack Overflow topic](https://stackoverflow.com/questions/49307513/meaning-of-allelementsboundbyaccessibilityelement) explains the differences. Defaults to `false` | `true`, `false` | 1.18.0+ |
|
||||
|
||||
|
||||
### Mac2
|
||||
|
||||
Please refer to the documentation on the [Mac2Driver repository](https://github.com/appium/appium-mac2-driver#settings-api)
|
||||
|
||||
@@ -7,7 +7,7 @@ Place a file onto the device in a particular place
|
||||
|
||||
```java
|
||||
// Java
|
||||
driver.pushFile("/path/to/device/foo.bar", new File("/Users/johndoe/files/foo.bar"));
|
||||
driver.pushFile("/data/local/tmp/foo.bar", new File("/Users/johndoe/files/foo.bar"));
|
||||
|
||||
```
|
||||
|
||||
@@ -26,29 +26,29 @@ let data = new Buffer("Hello World").toString('base64');
|
||||
driver.pushFile('/data/local/tmp/file.txt', data);
|
||||
|
||||
// wd example
|
||||
await driver.pushFileToDevice('/path/to/device/foo.bar', 'QXJlIHlvdXIgYmVlcnMgb2theT8=');
|
||||
await driver.pushFileToDevice('/data/local/tmp/foo.bar', 'QXJlIHlvdXIgYmVlcnMgb2theT8=');
|
||||
|
||||
```
|
||||
|
||||
```ruby
|
||||
# Ruby
|
||||
# ruby_lib example
|
||||
push_file('/path/to/device/foo.bar', File.read('path/to/file.png'))
|
||||
push_file('/data/local/tmp/foo.bar', File.read('path/to/file.png'))
|
||||
|
||||
# ruby_lib_core example
|
||||
@driver.push_file('/path/to/device/foo.bar', File.read('path/to/file.png'))
|
||||
@driver.push_file('/data/local/tmp/foo.bar', File.read('path/to/file.png'))
|
||||
|
||||
```
|
||||
|
||||
```php
|
||||
# PHP
|
||||
$driver->pushFile('/path/to/device/foo.bar', 'QXJlIHlvdXIgYmVlcnMgb2theT8=');
|
||||
$driver->pushFile('/data/local/tmp/foo.bar', 'QXJlIHlvdXIgYmVlcnMgb2theT8=');
|
||||
|
||||
```
|
||||
|
||||
```csharp
|
||||
// C#
|
||||
driver.PushFile("/path/to/device/foo.bar", new FileInfo("/Users/johndoe/files/foo.bar"))
|
||||
driver.PushFile("/data/local/tmp/foo.bar", new FileInfo("/Users/johndoe/files/foo.bar"))
|
||||
|
||||
```
|
||||
|
||||
|
||||
@@ -85,8 +85,8 @@ action.Perform();
|
||||
|
||||
|Language|Support|Documentation|
|
||||
|--------|-------|-------------|
|
||||
|[Java](https://github.com/appium/java-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#doubleTap-org.openqa.selenium.WebElement-) |
|
||||
|[Python](https://github.com/appium/python-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.double_tap) |
|
||||
|[Java](https://github.com/appium/java-client/releases/latest)| All | [www.selenium.dev](https://www.selenium.dev/selenium/docs/api/java/overview-summary.html) |
|
||||
|[Python](https://github.com/appium/python-client/releases/latest)| All | [selenium-python.readthedocs.io](https://selenium-python.readthedocs.io/api.html?highlight=tap_and_hold#selenium.webdriver.common.touch_actions.TouchActions.double_tap) |
|
||||
|[Javascript (WebdriverIO)](http://webdriver.io/index.html)| All | |
|
||||
|[Javascript (WD)](https://github.com/admc/wd/releases/latest)| All | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L425) |
|
||||
|[Ruby](https://github.com/appium/ruby_lib/releases/latest)| All | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:double_tap) |
|
||||
|
||||
@@ -81,7 +81,7 @@ action.Perform();
|
||||
|Language|Support|Documentation|
|
||||
|--------|-------|-------------|
|
||||
|[Java](https://github.com/appium/java-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#flick-org.openqa.selenium.WebElement-int-int-int-) |
|
||||
|[Python](https://github.com/appium/python-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.flick_element) |
|
||||
|[Python](https://github.com/appium/python-client/releases/latest)| All | [selenium-python.readthedocs.io](https://selenium-python.readthedocs.io/api.html#selenium.webdriver.common.touch_actions.TouchActions.flick_element) |
|
||||
|[Javascript (WebdriverIO)](http://webdriver.io/index.html)| All | |
|
||||
|[Javascript (WD)](https://github.com/admc/wd/releases/latest)| All | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L1513) |
|
||||
|[Ruby](https://github.com/appium/ruby_lib/releases/latest)| All | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:flick) |
|
||||
|
||||
@@ -88,7 +88,7 @@ touchAction.LongPress(element).Perform();
|
||||
|Language|Support|Documentation|
|
||||
|--------|-------|-------------|
|
||||
|[Java](https://github.com/appium/java-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#longPress-org.openqa.selenium.WebElement-) |
|
||||
|[Python](https://github.com/appium/python-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.long_press) |
|
||||
|[Python](https://github.com/appium/python-client/releases/latest)| All | [selenium-python.readthedocs.io](https://selenium-python.readthedocs.io/api.html#selenium.webdriver.common.touch_actions.TouchActions.long_press) |
|
||||
|[Javascript (WebdriverIO)](http://webdriver.io/index.html)| All | |
|
||||
|[Javascript (WD)](https://github.com/admc/wd/releases/latest)| All | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L1531) |
|
||||
|[Ruby](https://github.com/appium/ruby_lib/releases/latest)| All | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:long_press) |
|
||||
|
||||
@@ -98,7 +98,7 @@ As of Appium 1.8.0 all move actions take coordinates that are absolute.
|
||||
|Language|Support|Documentation|
|
||||
|--------|-------|-------------|
|
||||
|[Java](https://github.com/appium/java-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#down-int-int-) |
|
||||
|[Python](https://github.com/appium/python-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.move) |
|
||||
|[Python](https://github.com/appium/python-client/releases/latest)| All | [selenium-python.readthedocs.io](https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common.touch_actions) |
|
||||
|[Javascript (WebdriverIO)](http://webdriver.io/index.html)| All | |
|
||||
|[Javascript (WD)](https://github.com/admc/wd/releases/latest)| All | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L1531) |
|
||||
|[Ruby](https://github.com/appium/ruby_lib/releases/latest)| All | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:move) |
|
||||
|
||||
@@ -82,7 +82,7 @@ action.Perform();
|
||||
|Language|Support|Documentation|
|
||||
|--------|-------|-------------|
|
||||
|[Java](https://github.com/appium/java-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#scroll-int-int-) |
|
||||
|[Python](https://github.com/appium/python-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.scroll) |
|
||||
|[Python](https://github.com/appium/python-client/releases/latest)| All | [selenium-python.readthedocs.io](https://selenium-python.readthedocs.io/api.html#selenium.webdriver.common.touch_actions.TouchActions.scroll) |
|
||||
|[Javascript (WebdriverIO)](http://webdriver.io/index.html)| All | |
|
||||
|[Javascript (WD)](https://github.com/admc/wd/releases/latest)| All | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L425) |
|
||||
|[Ruby](https://github.com/appium/ruby_lib/releases/latest)| All | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:scroll) |
|
||||
|
||||
@@ -91,7 +91,7 @@ action.Perform();
|
||||
|Language|Support|Documentation|
|
||||
|--------|-------|-------------|
|
||||
|[Java](https://github.com/appium/java-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#down-int-int-) |
|
||||
|[Python](https://github.com/appium/python-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.tap_and_hold) |
|
||||
|[Python](https://github.com/appium/python-client/releases/latest)| All | [selenium-python.readthedocs.io](https://selenium-python.readthedocs.io/api.html?highlight=tap_and_hold#selenium.webdriver.common.touch_actions.TouchActions.tap_and_hold) |
|
||||
|[Javascript (WebdriverIO)](http://webdriver.io/index.html)| All | |
|
||||
|[Javascript (WD)](https://github.com/admc/wd/releases/latest)| All | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L1546) |
|
||||
|[Ruby](https://github.com/appium/ruby_lib/releases/latest)| All | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/TouchActionBuilder#down-instance_method) |
|
||||
|
||||
@@ -91,7 +91,7 @@ action.Perform();
|
||||
|Language|Support|Documentation|
|
||||
|--------|-------|-------------|
|
||||
|[Java](https://github.com/appium/java-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/touch/TouchActions.html#up-int-int-) |
|
||||
|[Python](https://github.com/appium/python-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html#selenium.webdriver.common.touch_actions.TouchActions.release) |
|
||||
|[Python](https://github.com/appium/python-client/releases/latest)| All | [selenium-python.readthedocs.io](https://selenium-python.readthedocs.io/api.html#selenium.webdriver.common.touch_actions.TouchActions.release) |
|
||||
|[Javascript (WebdriverIO)](http://webdriver.io/index.html)| All | |
|
||||
|[Javascript (WD)](https://github.com/admc/wd/releases/latest)| All | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L1546) |
|
||||
|[Ruby](https://github.com/appium/ruby_lib/releases/latest)| All | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FTouchActionBuilder:up) |
|
||||
|
||||
@@ -133,11 +133,11 @@ Please do not forget to call [delete command](/docs/en/commands/session/delete.m
|
||||
|
||||
|Language|Support|Documentation|
|
||||
|--------|-------|-------------|
|
||||
|[Java](https://github.com/appium/java-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/remote/server/DefaultSession.html#createSession-org.openqa.selenium.remote.server.DriverFactory-org.openqa.selenium.remote.server.Clock-org.openqa.selenium.remote.SessionId-org.openqa.selenium.Capabilities-) |
|
||||
|[Java](https://github.com/appium/java-client/releases/latest)| All | [www.selenium.dev](https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/WebDriver.html) |
|
||||
|[Python](https://github.com/appium/python-client/releases/latest)| All | [selenium-python.readthedocs.io](http://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webelement.WebElement.clear) |
|
||||
|[Javascript (WebdriverIO)](http://webdriver.io/index.html)| All | |
|
||||
|[Javascript (WD)](https://github.com/admc/wd/releases/latest)| All | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L1780) |
|
||||
|[Ruby](https://github.com/appium/ruby_lib/releases/latest)| All | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element:clear) |
|
||||
|[Ruby](https://github.com/appium/ruby_lib/releases/latest)| All | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver) |
|
||||
|[PHP](https://github.com/appium/php-client/releases/latest)| All | [github.com](https://github.com/appium/php-client/) |
|
||||
|[C#](https://github.com/appium/appium-dotnet-driver/releases/latest)| All | [github.com](https://github.com/appium/appium-dotnet-driver/) |
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ ICapabilities caps = driver.Capabilities;
|
||||
|
||||
|Language|Support|Documentation|
|
||||
|--------|-------|-------------|
|
||||
|[Java](https://github.com/appium/java-client/releases/latest)| All | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/remote/server/ActiveSessions.html#get-org.openqa.selenium.remote.SessionId-) |
|
||||
|[Java](https://github.com/appium/java-client/releases/latest)| All | [www.selenium.dev](https://www.selenium.dev/selenium/docs/api/java/overview-summary.html) |
|
||||
|[Python](https://github.com/appium/python-client/releases/latest)| All | [appium.github.io](https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.session.Session.session) |
|
||||
|[Javascript (WebdriverIO)](http://webdriver.io/index.html)| All | |
|
||||
|[Javascript (WD)](https://github.com/admc/wd/releases/latest)| All | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L227) |
|
||||
|
||||
@@ -64,29 +64,6 @@ node .
|
||||
See [the server documentation](/docs/en/writing-running-appium/server-args.md)
|
||||
for a full list of command line arguments that can be used.
|
||||
|
||||
#### Hacking with Appium for iOS
|
||||
|
||||
To avoid a security dialog that may appear when launching your iOS apps you'll
|
||||
have to modify your `/etc/authorization` file in one of two ways:
|
||||
|
||||
1. Manually modify the element following `<allow-root>` under `<key>system.privilege.taskport</key>`
|
||||
in your `/etc/authorization` file to `<true/>`.
|
||||
|
||||
2. Run the following command which automatically modifies your
|
||||
`/etc/authorization` file for you:
|
||||
|
||||
```
|
||||
sudo npm run authorize-ios
|
||||
```
|
||||
|
||||
At this point, run:
|
||||
|
||||
```
|
||||
rm -rf node_modules && rm -rf package-lock.json && npm install
|
||||
```
|
||||
|
||||
Now your Appium instance is ready to go. Run `node .` to kick up the Appium server.
|
||||
|
||||
#### Hacking with Appium for Android
|
||||
|
||||
To work on Android, make sure you have `ant`, `maven`, and `adb` installed
|
||||
|
||||
@@ -139,7 +139,7 @@ for e2e test files to end in `-e2e-specs.js`.
|
||||
The release process for any Appium module other than the main Appium package is
|
||||
pretty straightforward (note that you will need to be an NPM owner for the
|
||||
package if you want to publish it. Ownership is managed by the Appium
|
||||
committers; talk to @jlipps or @imurchie if you believe you should be an owner
|
||||
committers; talk to @jlipps, @kazucocoa, @dang, @mykola-mokhnach if you believe you should be an owner
|
||||
and are not):
|
||||
|
||||
1. `rm -rf node_modules && rm -rf package-lock.json && npm install` and run tests to make sure a clean install works.
|
||||
@@ -149,7 +149,7 @@ and are not):
|
||||
1. Push the appropriate branch to GitHub, and don't forget to include the `--tags` flag to include the tag just created by `npm version`.
|
||||
1. Run `npm publish` (with `--tag beta` if this isn't an official release).
|
||||
|
||||
For the main Appium packages, all the above steps must be taken, but with
|
||||
For the main Appium package, all the above steps must be taken, but with
|
||||
several changes. One reason is that for the main package we use NPM shrinkwrap
|
||||
to ensure dependencies don't change between installations. Another reason is
|
||||
that we develop on master and release on various branches. The way it works is
|
||||
@@ -177,18 +177,4 @@ checked in to GitHub along with changes to `package.json`. With npm 5+ there is
|
||||
also a `package-lock.json` file produced. During the shrinkwrap process this is
|
||||
converted into the `npm-shrinkwrap.json` file.
|
||||
|
||||
1. Remove the NPM shrinkwrap and package-lock JSON files if they exists.
|
||||
1. `rm -rf node_modules && npm install` and run tests to make sure a clean install works.
|
||||
1. Determine whether we have a `patch` (bugfix), `minor` (feature), or `major` (breaking) release according to the principles of SemVer.
|
||||
1. Update `package.json` with the appropriate new version.
|
||||
1. Update the CHANGELOG/README with appropriate changes and submit for review as a PR, along with shrinkwrap and `package.json` changes. Wait for it to be merged, then pull it into the release branch.
|
||||
1. Run `npm shrinkwrap` to generate the `npm-shrinkwrap.json`
|
||||
1. Create a tag of the form `v<version>` on the release branch (usually a minor branch like `1.5` or `1.4`), with: `git tag -a v<version>`, e.g., `git tag -a v1.5.0`, `git tag -a v1.5.0-rc.1`. This is not necessary for beta versions.
|
||||
1. Push the tag to upstream: `git push --tags <remote> <branch>`
|
||||
1. Run `npm publish` (with `--tag rc` if this isn't a GA release).
|
||||
1. Remove the NPM shrinkwrap JSON file from Git and push the changes
|
||||
1. Update the site docs by going to https://github.com/appium/appium.io/pulls and merging the latest pull request that was opened by the Triager bot. Close any other pull requests opened by Triager bot.
|
||||
1. Create a new release on GitHub: go to `https://github.com/appium/appium/releases/tag/v<VERSION>` and hit "Edit Tag". Make the release name `<VERSION>` (e.g., `2.0.5`), then paste in the changelog (but not the changelog header for this version). If it's a beta release, mark as pre-release.
|
||||
1. Create a new post on discuss.appium.io announcing the release. Post it in the "News" category. Paste in the changelog and any choice comments. Pin it and unpin the previous release post.
|
||||
1. Begin process of releasing `appium-desktop`.
|
||||
1. Notify @jlipps to so he can tweet a link to the discuss post.
|
||||
Follow directions in [Release Appium Doc](/docs/en/contributing-to-appium/release-appium.md)
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# Releasing Appium
|
||||
Appium follows the GitLab flow approach. Releases are made on release branches that have the format `releases/x.y` where `x` is a major version and `y` is a minor version. The main Appium repository doesn't strictly follow semver (unlike the dependencies of Appium). A minor release (e.g.: `1.20.0`) means that we're creating a new release that has a newly created set of dependencies that are shrinkwrapped to the latest. A patch release (e.g.: `1.20.4`) isn't strictly a "patch", but just means that we're making an intermediary release that brings in small changes. For example, suppose I have a new version of `appium-xcuitest-driver` that I want to publish and it can't wait until the next minor release. To bring in that change, I would checkout the release branch (e.g.: `git checkout releases/1.20`); install the dependency (`npm install appium-xcuitest-driver@version && git commit -a -m 'bump appium-xcuitest-driver to version $version`); release a "release candidate" (see below) and then when it's ready, graduate the "release candidate" to general availability
|
||||
|
||||
## Create a release branch
|
||||
1. `bash ./scripts/release-branch.sh x.y` where `x` is the major version and `y` is the minor version (example: `bash ./scripts/release-branch.sh 1.20`)
|
||||
* This will create:
|
||||
* A release branch `releases/1.20`
|
||||
* A git tag `v1.20.0-rc.0`
|
||||
* Publish a NPM package `1.20.0-rc.0` as a release candidate
|
||||
1. Create a changelog pull request
|
||||
|
||||
## Create a release candidate
|
||||
1. Checkout the release branch (e.g.: `git checkout releases/1.21 && git pull origin releases/1.21`)
|
||||
1. `bash ./scripts/release-candidate.sh rc`
|
||||
|
||||
## Publish to GA
|
||||
1. Checkout the release branch (e.g.: `git checkout releases/1.21 && git pull origin releases/1.21`)
|
||||
1. `bash ./scripts/release-candidate.sh latest`
|
||||
1. Update the site docs by going to https://github.com/appium/appium.io/pulls and merging the latest pull request that was opened by the Triager bot. Close any other pull requests opened by Triager bot.
|
||||
1. Create a new release on GitHub: go to `https://github.com/appium/appium/releases/tag/v<VERSION>` and hit "Edit Tag". Make the release name `<VERSION>` (e.g., `2.0.5`), then paste in the changelog (but not the changelog header for this version). If it's a beta release, mark as pre-release.
|
||||
1. Create a new post on discuss.appium.io announcing the release. Post it in the "News" category. Paste in the changelog and any choice comments. Pin it and unpin the previous release post.
|
||||
1. Begin process of releasing `appium-desktop`.
|
||||
1. Notify @jlipps to so he can tweet a link to the discuss post.
|
||||
@@ -55,32 +55,6 @@ Reference](#TODO).
|
||||
simulator may be open, and automated, at any given time. For multiple simulator
|
||||
support, you will need to upgrade to the [XCUITest driver](ios-xcuitest.md)).
|
||||
|
||||
1. To allow the iOS simulator to be automated by Instruments, you need to
|
||||
modify the authorization database for the system. Appium provides an easy
|
||||
way to do this by installing and running an authorization script:
|
||||
|
||||
```
|
||||
sudo authorize-ios
|
||||
```
|
||||
|
||||
1. By default, Instruments-based automation is limited by the inclusion of
|
||||
a 1-second hard-coded delay between commands, implemented for obscure
|
||||
reasons by Apple's engineers. There is a way around this limitation called
|
||||
[instruments-without-delay](https://github.com/facebookarchive/instruments-without-delay)
|
||||
(IWD). IWD ships with Appium for Xcode versions < 7. For 7.x and up, IWD
|
||||
must be installed manually by the user in advance of using Appium. The way
|
||||
to do this is as follows:
|
||||
|
||||
* Clone the [appium-ios-driver](https://github.com/appium/appium-ios-driver)
|
||||
repository.
|
||||
* Inside the repo, run the `xcode-iwd.sh` script included in the `bin` dir,
|
||||
passing it several arguments: (1) the path to the Xcode app you are
|
||||
using. (2) The path to the appium-instruments directory. For example:
|
||||
|
||||
```
|
||||
sh ./bin/xcode-iwd.sh /Applications/Xcode.app /Users/me/appium-instruments/
|
||||
```
|
||||
|
||||
1. For best results, launch each simulator you wish to use and ensure the following:
|
||||
|
||||
* The soft keyboard is enabled (Command+K in the Simulator app)
|
||||
@@ -163,8 +137,7 @@ $HOME/Library/Logs/CoreSimulator/*
|
||||
### Running iOS tests using Jenkins
|
||||
|
||||
First download the `jenkins-cli.jar` and verify that the Mac successfully
|
||||
connects to Jenkins master. Ensure you've run the `authorize-ios` command
|
||||
mentioned above.
|
||||
connects to Jenkins master.
|
||||
|
||||
```
|
||||
wget https://jenkins.ci.cloudbees.com/jnlpJars/jenkins-cli.jar
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
## The Mac2Driver
|
||||
|
||||
Mac2Driver has been added to Appium since version 1.20.
|
||||
This driver is for automating macOS applications using Apple's [XCTest](https://developer.apple.com/documentation/xctest) framework.
|
||||
It provides more flexibility and features in comparison to the legacy
|
||||
[MacDriver](mac.md) and is better compatible with operating system internals.
|
||||
The driver operates in scope of [W3C WebDriver protocol](https://www.w3.org/TR/webdriver/) with several custom extensions to cover operating-system specific scenarios.
|
||||
The original idea and parts of the source code are borrowed from the Facebook's [WebDriverAgent](https://github.com/facebookarchive/WebDriverAgent) project.
|
||||
|
||||
Development of the Mac2Driver happens at the
|
||||
[appium-mac2-driver](https://github.com/appium/appium-mac2-driver) repo.
|
||||
|
||||
|
||||
### Requirements and Support
|
||||
|
||||
In addition to Appium's general requirements:
|
||||
|
||||
- macOS 10.15 or later
|
||||
- Xcode 12 or later should be installed
|
||||
- Xcode Helper app should be enabled for Accessibility access. The app itself could be usually found at `/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/Agents/Xcode Helper.app`. In order to enable Accessibility access for it simply open the parent folder in Finder: `open /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/Agents/` and drag & drop the `Xcode Helper` app to `Security & Privacy -> Privacy -> Accessibility` list of your `System Preferences`. This action must only be done once.
|
||||
- [Carthage](https://github.com/Carthage/Carthage) should be present. On macOS the utility could be installed via [Brew](https://brew.sh/): `brew install carthage`
|
||||
|
||||
|
||||
### Usage
|
||||
|
||||
The way to start a session using the Mac2Driver is to include the
|
||||
`automationName` capability in your new session request, with
|
||||
the value `Mac2`. Of course, you must also include appropriate
|
||||
`platformName` (only `Mac` is supported). Read
|
||||
[Mac2Driver documentation](https://github.com/appium/appium-mac2-driver/blob/master/README.md)
|
||||
for more details.
|
||||
|
||||
|
||||
### Capabilities
|
||||
|
||||
The list of available driver capabilities could be found in
|
||||
the driver [README](https://github.com/appium/appium-mac2-driver/blob/master/README.md) file.
|
||||
@@ -274,7 +274,12 @@ Driver](/docs/en/drivers/ios-uiautomation.md).
|
||||
|
||||
### MacDriver Only
|
||||
|
||||
(For MacDriver capabilities, please refer to the documentation on the [Appium Mac Driver repo](https://github.com/appium/appium-mac-driver#desired-capabilities) itself.)
|
||||
(For MacDriver capabilities, please refer to the documentation on the [Appium MacDriver repo](https://github.com/appium/appium-mac-driver#desired-capabilities) itself.)
|
||||
|
||||
|
||||
### Mac2Driver Only
|
||||
|
||||
(For Mac2 Driver capabilities, please refer to the documentation on the [Appium Mac2Driver repo](https://github.com/appium/appium-mac2-driver#capabilities) itself.)
|
||||
|
||||
### You.i Engine Only
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ module.exports = {
|
||||
['Safari (Mac/iOS)', 'safari.md'],
|
||||
['Gecko (Firefox)', 'gecko.md'],
|
||||
['Mac', 'mac.md'],
|
||||
['Mac2', 'mac2.md'],
|
||||
]],
|
||||
['Commands', ['commands',
|
||||
['Status', 'status.md'],
|
||||
@@ -317,6 +318,7 @@ module.exports = {
|
||||
['Appium Style Guide', 'style-guide.md'],
|
||||
['How to Write Docs', 'how-to-write-docs.md'],
|
||||
['Appium Package Structure', 'appium-packages.md'],
|
||||
['Release Appium', 'release-appium.md'],
|
||||
['Credits', 'credits.md']]]
|
||||
],
|
||||
cn: [
|
||||
|
||||
@@ -33,6 +33,7 @@ const AUTOMATION_NAMES = {
|
||||
INSTRUMENTS: 'Instruments',
|
||||
WINDOWS: 'Windows',
|
||||
MAC: 'Mac',
|
||||
MAC2: 'Mac2',
|
||||
FLUTTER: 'Flutter',
|
||||
SAFARI: 'Safari',
|
||||
GECKO: 'Gecko',
|
||||
@@ -70,6 +71,10 @@ const DRIVER_MAP = {
|
||||
driverClassName: 'MacDriver',
|
||||
driverPackage: 'appium-mac-driver',
|
||||
},
|
||||
[AUTOMATION_NAMES.MAC2.toLowerCase()]: {
|
||||
driverClassName: 'Mac2Driver',
|
||||
driverPackage: 'appium-mac2-driver',
|
||||
},
|
||||
[AUTOMATION_NAMES.ESPRESSO.toLowerCase()]: {
|
||||
driverClassName: 'EspressoDriver',
|
||||
driverPackage: 'appium-espresso-driver',
|
||||
|
||||
+6
-2
@@ -130,13 +130,17 @@ async function main (args = null) {
|
||||
await logStartupInfo(parser, args);
|
||||
let appiumDriver = new AppiumDriver(args);
|
||||
let routeConfiguringFunction = makeRouter(appiumDriver);
|
||||
let server = await baseServer({
|
||||
const serverOpts = {
|
||||
routeConfiguringFunction,
|
||||
port: args.port,
|
||||
hostname: args.address,
|
||||
allowCors: args.allowCors,
|
||||
basePath: args.basePath,
|
||||
});
|
||||
};
|
||||
if (args.keepAliveTimeout) {
|
||||
serverOpts.keepAliveTimeout = args.keepAliveTimeout * 1000;
|
||||
}
|
||||
let server = await baseServer(serverOpts);
|
||||
if (args.allowCors) {
|
||||
logger.warn('You have enabled CORS requests from any host. Be careful not ' +
|
||||
'to visit sites which could maliciously try to start Appium ' +
|
||||
|
||||
@@ -66,6 +66,15 @@ const args = [
|
||||
'on this server'
|
||||
}],
|
||||
|
||||
[['-ka', '--keep-alive-timeout'], {
|
||||
required: false,
|
||||
default: null,
|
||||
dest: 'keepAliveTimeout',
|
||||
type: 'int',
|
||||
help: 'Number of seconds the Appium server should apply as both the keep-alive timeout ' +
|
||||
'and the connection timeout for all requests. Defaults to 600 (10 minutes).'
|
||||
}],
|
||||
|
||||
[['-ca', '--callback-address'], {
|
||||
required: false,
|
||||
dest: 'callbackAddress',
|
||||
|
||||
Generated
+16656
File diff suppressed because it is too large
Load Diff
+6
-7
@@ -11,7 +11,7 @@
|
||||
"firefoxos",
|
||||
"testing"
|
||||
],
|
||||
"version": "1.20.0-beta.0",
|
||||
"version": "1.20.2",
|
||||
"author": "https://github.com/appium",
|
||||
"license": "Apache-2.0",
|
||||
"repository": {
|
||||
@@ -27,8 +27,7 @@
|
||||
},
|
||||
"main": "./build/lib/main.js",
|
||||
"bin": {
|
||||
"appium": "./build/lib/main.js",
|
||||
"authorize-ios": "./node_modules/.bin/authorize-ios"
|
||||
"appium": "./build/lib/main.js"
|
||||
},
|
||||
"directories": {
|
||||
"lib": "./lib",
|
||||
@@ -50,12 +49,13 @@
|
||||
"appium-geckodriver": "^0.3.0",
|
||||
"appium-ios-driver": "4.x",
|
||||
"appium-mac-driver": "1.x",
|
||||
"appium-mac2-driver": "^0",
|
||||
"appium-safari-driver": "^2.1.0",
|
||||
"appium-support": "2.x",
|
||||
"appium-tizen-driver": "^1.1.1-beta.4",
|
||||
"appium-uiautomator2-driver": "^1.37.1",
|
||||
"appium-uiautomator2-driver": "^1.61.2",
|
||||
"appium-windows-driver": "1.x",
|
||||
"appium-xcuitest-driver": "^3.27.6",
|
||||
"appium-xcuitest-driver": "^3.33.1",
|
||||
"appium-youiengine-driver": "^1.2.0",
|
||||
"argparse": "^2.0.1",
|
||||
"async-lock": "^1.0.0",
|
||||
@@ -95,8 +95,7 @@
|
||||
"generate-docs": "node ./build/commands-yml/parse.js",
|
||||
"zip": "zip -qr appium.zip .",
|
||||
"upload": "gulp github-upload",
|
||||
"zip-and-upload": "npm run zip && npm run upload",
|
||||
"authorize-ios": "authorize-ios"
|
||||
"zip-and-upload": "npm run zip && npm run upload"
|
||||
},
|
||||
"pre-commit": [
|
||||
"precommit-msg",
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
git fetch
|
||||
echo "* Creating release branch $1"
|
||||
git checkout -b releases/$1
|
||||
rm -rf node_modules/ npm-shrinkwrap.json package-lock.json
|
||||
npm install
|
||||
npm shrinkwrap
|
||||
echo "* git add ."
|
||||
git add npm-shrinkwrap.json package.json
|
||||
git commit -m 'add shrinkwrap'
|
||||
echo "* npm version $1.0-rc.0"
|
||||
npm version $1.0-rc.0
|
||||
git push origin releases/$1
|
||||
bash ./scripts/release-candidate.sh
|
||||
@@ -0,0 +1,4 @@
|
||||
npm version prerelease --preid=$1
|
||||
git push
|
||||
git push --tags
|
||||
npm publish --tag $1
|
||||
Reference in New Issue
Block a user