200 Commits
Author SHA1 Message Date
Mykola Mokhnach d0ac39d8fc chore: Import uuid from appium-suuport (#391) 2020-03-14 07:28:04 +01:00
Isaac A. Murchie 3479210e3d fix: when parsing cap array, pass array through (#373) 2019-12-07 11:36:22 -06:00
Mykola Mokhnach 1931e778ad refactor: Prefer event emitting to promises cancelation (#370)
BREAKING CHANGE: The current refactoring is breaking and changes `onUnexpectedShutdown` property to a function, which accepts a handler that is invoked by the driver when it gets shut down unexpectedly
2019-11-25 19:01:38 +01:00
Mykola Mokhnach 9de802864c fix: Sync parameters validation for the old and the new set alert text endpoints (#369) 2019-11-20 09:35:08 +01:00
Kazuaki Matsuo 260af285ac feat: add filtering log events with type (related to #365) (#368)
* add filtering with type

* use reduce, add converting to array

* make anonymous
2019-11-13 16:44:36 +09:00
Jonathan Lipps 09a7bf81c9 feat: add ability to retrieve log events as a new api route (#365) 2019-11-05 16:38:30 -08:00
Jonathan Lipps e434762c31 feat: add new route to allow logging of custom events (#364) 2019-11-04 19:56:31 -08:00
Mykola Mokhnach e9eb77f74e fix: Make device name non required (#363) 2019-10-19 21:21:38 +02:00
Mykola Mokhnach 445b180f77 refactor: Replace custom commands queue implementation with async lock (#362) 2019-10-16 18:34:52 +02:00
Mykola Mokhnach b860a3bfa4 fix: Adjust the error codes for NotImplementedError (#357) 2019-10-04 13:42:56 +02:00
Isaac A. Murchie 4f52b1b654 fix: fix the build for Node 12.11.0 (#359) 2019-09-30 13:02:09 -04:00
Jonathan Lipps cc8b879da2 feat: stop hardcoding /wd/hub and make route prefix configurable [BREAKING CHANGE] (#346) 2019-08-27 09:23:10 -07:00
Isaac A. Murchie 22eef3b4a3 refactor: make server parameters a hash [breaking change] (#350) 2019-08-26 15:15:19 -04:00
Kazuaki Matsuo 58222d35f9 accept text for setValueImmediate and replaceValue as W3C (#347) 2019-08-16 10:20:53 +09:00
Alexis Gauthiez 9c0931d28c Handle Content-Type with parameter (#341) 2019-08-05 21:31:19 +02:00
Bruno Alassia 3efdad8cb9 feat: Add parseCapsArray to base driver (#333) 2019-07-17 09:41:01 -07:00
Mykola Mokhnach 70fa8319f9 Optimize memory usage by proxy class (#334) 2019-07-03 22:41:00 +02:00
Jonathan Lipps 23d6ecf949 Add endpoint that receives a webdriver script for batch command execution (#328)
* add executeDriverScript route, command, tests

* allow driver scripts to write and collect console logs

* ensure driver script protocol is set to same protocol as driver, and also includes all appium commands

* implement isFeatureEnabled to check for insecure feature

* add tests for isFeatureEnabled

* update feature flag name to match style of other flags

* add ensureFeatureEnabled method for use by other drivers

* move driver script execution into a child process so we can kill it if necessary

* use this.opts.address instead of this.opts.host

* ensure driver script timeout is a number in the child proc as well

* ensure we get webdriverio without issues
2019-06-25 12:12:27 -07:00
Kazuaki Matsuo e3caf43337 add getting result image by find by image (#327)
* add getMatchedImageResult and return the result if it is true

* add tests

* tweak error case
2019-05-29 13:00:17 +09:00
Isaac Murchie 20aeef2949 Extend unexpected timeout test delay 2019-05-07 10:04:20 -04:00
Isaac A. Murchie 291a376f3c Remove chromedriver dev dep (#320) 2019-04-24 11:35:48 -04:00
Dan Graham 6416438405 fix: Make proxy convert /property to /attribute (#311) 2019-04-08 11:08:54 -07:00
Jonathan Lipps 89e80b8ce4 fix flakey unexpected shutdown test 2019-04-04 10:36:27 -07:00
Isaac A. Murchie b0d7e2e77b Update bluebird (#310)
* Upgrade bluebird

* Remove catch for CancellationError

* Make image command cancellable too
2019-03-26 15:58:11 -04:00
Isaac A. Murchie 5b12eebcf0 Add function names (#309) 2019-03-21 14:38:22 -04:00
Kazuaki Matsuo b38ef751f4 Fix template scale in find element by image (#307)
* add imageTemplateDefaultScale to scale arbitrary scale every time by default

* put all of template scaling into one method

* increase test cases to cover all situations

* define gnoreDefaultImageTemplateScale for click

* add a comment

* tweak comments

* fix typo, default value, docstring

* fix review

* fix ratio potential issue

* use const instead of let

* tweak a comment about scale factor

* remove _, tweak NaN comparison

* use math.round to compare two float

* rename float round constant

* fix typo

* update imgObj

* fix comments
2019-03-20 09:00:02 +09:00
Khanh Do 757e029fad Fixed typo signalStrength (#308)
* Fixed typo signalStrength

* Update hash

* Added backward-compatible

* Updated hash & fixed unit test
2019-03-06 23:20:11 +09:00
Kazuaki Matsuo 3ec8e5675f Fix find element wrong coordinate (#306)
* fix wrong coordinate for android and ios

* separate fixScaleTemplateImage

* add fixScaleTemplateImage as a settings

* take care of both landscape and portrate

* rename to fixTemplateImageScale

* rename ratio to scale

* does not scale if the arg is non number

* rename preference name, default value

* remove comment outted lines

* add null filter as safer way
2019-03-01 10:23:09 +09:00
Mykola Mokhnach 7b163dcb4d Handle setValue API call conversion between protocols (#297) 2019-01-27 08:37:45 +01:00
greenkeeper[bot] 4eab674f92 Update eslint-config-appium to the latest version 🚀 (#295)
* chore(package): update eslint-config-appium to version 4.0.1

* chore: fix linting
2019-01-07 13:11:57 -06:00
Kazuaki Matsuo a98f22607e add POST for system_time in order to set payload (#294) 2019-01-07 09:26:10 +01:00
Mykola Mokhnach ee17aef91c Fix timeout arguments conversion (#292) 2018-12-27 19:26:04 +01:00
Dan Graham 644208fe60 Copy W3C/Element keys instead of renaming them (#290) 2018-12-10 13:24:36 -08:00
Mykola Mokhnach 3141e831cb Properly synchronize applications caching (#274) 2018-10-22 16:10:35 +02:00
Mykola Mokhnach 14cfcfcef7 Make it possible to pass multiple supported extensions to configureApp helper (#271) 2018-10-19 20:27:54 +02:00
Jonathan Lipps 02b3b87164 add custom locator strategy (#268)
* add custom locator strategy

* address review comments

* allow customFindModules cap to register multiple modules as an object

* add unit tests for custom element finding plugin
2018-10-12 10:19:57 -07:00
Isaac A. Murchie 04af064564 Update appium-gulp-plugins (#266) 2018-10-03 09:00:58 -04:00
Mykola Mokhnach 9c0aa56df4 Move server tests to functional set of tests (#267) 2018-10-02 07:14:12 +02:00
Mykola Mokhnach f9581f1642 Limit the count of request agents in the proxy pool (#260) 2018-09-19 09:12:59 -07:00
Mykola Mokhnach 16e2852a1b Fix the way current protocol is determined from execute response (#258) 2018-09-11 18:27:27 +02:00
Mykola Mokhnach d80a78a615 Fix protocol detection inside the routing function (#257) 2018-09-08 20:39:08 +02:00
Mykola Mokhnach 432915f234 Fix setting alert text for W3C protocol (#254) 2018-09-06 18:01:03 +02:00
Mykola Mokhnach deb775bd0c Properly handle POST /window conversion between protocols (#253)
* Properly handle POST /window conversion between protocols
2018-08-28 16:59:31 +02:00
Mykola Mokhnach f909201791 Add JSONWP<>W3C mapping for window/handles endpoint (#251) 2018-08-21 21:50:00 +02:00
Mykola Mokhnach 5231fae89b Apply additional fixes to timeouts handler (#250)
* Apply additional fixes to timeouts handler

* Address comments

* Update the rest of tests

* Remove unused import

* fix the unit test
2018-08-15 15:26:47 +02:00
Mykola Mokhnach b161cb9527 Tune arguments transformation for /timeouts API call (#248)
* Tune arguments transformation for /timeouts API call

* Tune number verification

* Remove unnecessary validator

* Remove obsolete tests
2018-08-14 10:48:19 +02:00
Mykola Mokhnach 4ed0c0b3cc Add an optional parameter to /window call (#244)
* Add an optional parameter to /window call

* update the validation

* Use util.hasValue

* Make args to make both protocols happy
2018-08-02 07:53:53 +02:00
Jonathan Lipps ec72948de2 add -image locator strategy and related logic (#235)
* add -image locator strategy and related logic

* use appium-support jimp helper

* handle find multiple elements by image

* update staleness check variable name

* ensure that a settings object always exists so we can rely on global settings always existing too

* only fix template size if user requests it in settings

* add note about implicit wait error handling

* only automatically update image element position if user turns on an appropriate setting

* add setting to control whether we check for image element staleness

* add setting to determine the image element tap strategy (w3c or mjsonwp)

* prefer single quotes

* add setting to turn off screenshot resizing if not desired

* add docstrings (except for cache class which we may not keep)

* address additional review comments

* add better jsdoc arg info

* use lru-cache npm package instead of rolling our own

* use new versino of appium-support

* make sure the lru cache is checking element size correctly

* give better names and tighten up logic around image el tap strategies

* add some unit tests for image elements

* ensure DeviceSettings has a default no-op update method

* check that driver implements action strategies and fall back / throw as appropriate

* finish out image element unit tests

* have basedriver set noop onSettingsUpdate rather than doing it in DeviceSettings

* move route avoidance detection from protocol to driver

* handle proxying actions to downstream drivers during image tap

* tighten up logic for deciding whether to proxy based on presence of image element

* add find by image specs and fix issues that arose in the process

* clean up regexes

* don't try to be smart and proxy actions for drivers; let them set it up themselves to support image elements

* change default match threshold based on experimentation

* export which settings are handled by basedriver so downstream drivers can utilize this information

* make sure to include a duration for the initial pointerMove action

* add docstring to proxyRouteIsAvoided
2018-07-30 13:17:54 -07:00
Mykola Mokhnach dfae5caf62 Properly handle MJSONWP responses with non-zero status and return code < 400 (#240)
* Properly handle MJSONWP responses with non-zero status and return code < 400

* code 500 looks more appopriate

* Optimize downstream protocol detection

* Update the unit test

* Update errors handling inside proxyReqRes

* Improve the condition
2018-07-25 08:34:45 +02:00
Isaac A. Murchie 2bb0be7ad9 Fix handling of proxy url (#239)
* Fix handling of proxy url

* Allow no base in original proxy url
2018-07-24 15:45:22 -04:00