1
0
mirror of https://github.com/MontFerret/ferret.git synced 2024-12-16 11:37:36 +02:00
Commit Graph

305 Commits

Author SHA1 Message Date
Владимир Фетисов
05eb9bc5f5 delete 'status_code' from HTTPResponse.GetIn 2019-10-07 21:42:57 +03:00
Владимир Фетисов
3bb0ab183b pull master 2019-10-03 22:42:14 +03:00
Владимир Фетисов
6100ea316c implement GetResponse for cdp.HTMLPage 2019-09-30 21:10:08 +03:00
Владимир Фетисов
fb4634da9c implement GetResponse for http.HTMLPage 2019-09-30 21:09:51 +03:00
Владимир Фетисов
43fb43eb8b add GetResponse into HTMLPage interface 2019-09-30 21:07:11 +03:00
Владимир Фетисов
73c9a01af5 add HTTPResponse 2019-09-30 21:00:13 +03:00
Владимир Фетисов
d0f8b69241 handle Ptr kind 2019-09-30 20:42:05 +03:00
Gabriel Marinkovic
8922079748 added http code 500 as allowed response for http, change later to custom allowed codes 2019-09-23 01:40:49 +02:00
Gabriel Marinkovic
61e3a406d8 added onclick to attrs.go list 2019-09-23 01:39:25 +02:00
Gabriel Marinkovic
69f851a002 fixed bug where ExistsBySelector() would look at element's parents instead of children. 2019-09-22 17:36:20 +02:00
Gabriel Marinkovic
24f6329203 fixed bug where non-existant goquery selections wouldn't be handled as such. 2019-09-22 17:27:52 +02:00
Tim Voronov
af45936e77 Fixed use of invalid HTMLElementIdentity field 2019-09-07 15:35:51 -04:00
Tim Voronov
df390a629a
Merge pull request #380 from MontFerret/refactoring/html-element
Removed redundant element value caching
2019-09-07 14:36:16 -04:00
Tim Voronov
012029f8d9 Updated comments 2019-09-07 14:03:17 -04:00
Tim Voronov
45bab19c0a Removed redundant element value caching 2019-09-07 13:12:19 -04:00
Tim Voronov
d144c618eb Added BLUR function 2019-09-07 12:59:37 -04:00
Tim Voronov
926cc305df
Feature/#291 param dot notation (#378)
* Added param to member expression

* Improved path lookup

* Added support for params as segments in member expression path
2019-09-07 11:39:02 -04:00
Tim Voronov
7af241bbdc Fixed linting issue 2019-09-07 02:02:25 -04:00
Tim Voronov
fcd0a21e75
Added click count (#377)
* Added click count
2019-09-07 01:59:32 -04:00
Tim Voronov
04eea23e52 Added support for params as segments in member expression path 2019-09-07 01:57:33 -04:00
Tim Voronov
0a2fd478cd Improved path lookup 2019-09-07 01:47:58 -04:00
Tim Voronov
9c0e81a2f4 Added param to member expression 2019-09-07 01:21:43 -04:00
Tim Voronov
24370d8178
Refactored methods (#376)
* Refactored methods

* Fixed errors provided by go vet
2019-09-06 23:15:27 -04:00
Tim Voronov
c773509469
Added missed errors to HTMLElement interface (#375)
* Added missed errors to HTMLElement interface

* Fixed test suit
2019-09-06 21:02:41 -04:00
Tim Voronov
2d645434d8
Externalized common timeout values (#371)
* Externalized common timeout values

* Updated go.sum
2019-09-05 12:17:22 -04:00
Tim Voronov
9b762d32ee
Feature/#360 default driver params (#372)
* Added default headers and cookies

* wip

* Added tests

* Added default headers and cookies to HTTP driver

* Removed unused struct prop
2019-09-05 11:49:21 -04:00
Tim Voronov
5928900e82
Added tick as a string literal (#367) 2019-09-01 21:41:16 -04:00
Tim Voronov
af1125c8e9
Added INPUT_CLEAR function (#366)
* Added INPUT_CLEAR function

* Fixed linting issue

* Fixed formatting
2019-09-01 16:09:35 -04:00
Tim Voronov
2a8135657d
Fixed access to a member property right after a function call (#368) 2019-09-01 16:01:03 -04:00
Tim Voronov
f39face8bf
Bugfix/click (#355)
* Added ability to use ClickBySelector with an element

* Fixes

* Increased timeout time
2019-08-24 20:26:27 -04:00
Tim Voronov
70b17ce755
Close a tab on every error (#359) 2019-08-24 20:25:15 -04:00
3timeslazy
f87fe1e669 refactoring: .GetIn (#353)
* sync with MontFerret/ferret

* fix --param handling

When params is converted to map it uses strings.Split,
which slices a string into all substrings separated by :.

* implement GetIn for values.Object

* implement GetIn for values.Array

* rewrite GetIn because values.Object and values.Array implement core.Getter now

* fix bug when GetIn return nil instead of None

* add tests for Object and Array .GetIn

* add GetIn comment and remove 'len(byPath)' check

* fix GetIn comment
2019-08-20 22:00:15 -04:00
Tim Voronov
6ec50c5e43
Bugfix/inner text html by selector (#347)
* Fixed inner text

* Fixed inner html

* Updated set inner html and inner text

* Changed mechanism of reading and writing inner text and html

* updated makefile

* Added e2e tests

* Updated makefile

* Updated changelog

* Reverted dynamic page example
2019-08-05 19:57:02 -04:00
Tim Voronov
11bf8c365a
Fixed headers (#348)
* Fixed headers

* Added e2e for static pages
2019-08-04 17:25:47 -04:00
Tim Voronov
2997a9b264
Bugfix/logging (#346)
* Fixed inability to pass custom ID to th runtime logger

* Removed UUID module

* Removed redundant check
2019-08-02 23:28:25 -04:00
Tim Voronov
2ba68ebf00
Updated scrolling logic (#343) 2019-08-01 20:27:26 -04:00
Tim Voronov
843bc2a44e
Added a check whether an element is in the viewport before scrolling (#342) 2019-07-26 15:34:18 -04:00
Tim Voronov
b323a984cc
Added errors to ClickX methods and added existence check (#341)
* Added errors to ClickX methods and added existence check

* Fixes

* Return None from Iterator when an error occurs
2019-07-26 13:22:06 -04:00
Tim Voronov
7e6b3bf15d
Feature/focus (#340)
* Added and implemented Focus and FocusBySelector methods

* Added e2e tests

* Updated CHANGELOG

* Fixed linting errors
2019-07-23 16:13:04 -04:00
Tim Voronov
14c487ca46
Updated pagination iterator (#338)
* Updated pagination iterator

* Added e2e test

* Fixed e2e tests
2019-07-23 12:44:30 -04:00
Tim Voronov
22382a0f61
Added namespace builder (#336)
* Added namespace builder

* Fixed linting issues

* Added extra check

* Updated e2e lib

* Renamed NamespaceBuilder to NamespaceContainer and changed func receivers

* Renamed NewLib to RegisterLib
2019-07-22 17:21:20 -04:00
Tim Voronov
ddfb7a20e8 Added missed property in Document getter 2019-07-17 18:41:57 -04:00
Tim Voronov
63201148ac
Added possibility to set custom viewport size (#334)
* Added possibility to set custom viewport size

* Fixed linting issue

* Renamed ScreenSize to Viewport

* Updated e2e test
2019-07-17 13:29:16 -04:00
Tim Voronov
8e13cf9134
Refactored input and select (#331)
* Refactored input and select

* WIP

* Fixed serialization

* Fixed scriolling

* Fixed XPath result handling

* Renamed some methods
2019-07-16 18:17:42 -04:00
Tim Voronov
a5cbdb435c
Bugfix/#332 nav deadlock (#333)
* Added failing e2e test

* Fixed deadlock on navigation

* Removed filter for e2e tests

* Updated method name in LazyValue struct

* Custom atomic value

* Fixed linting issue

* Updated comments
2019-07-16 10:34:13 -04:00
Tim Voronov
9756f0dc5a
Changed logic of iterator termination (#330) 2019-07-13 13:39:01 -04:00
Tim Voronov
b1e9505dd1 Removed initial innerHTML load 2019-07-13 12:55:00 -04:00
Tim Voronov
347bae2e45
Feature/#265 dom manipulations (#329)
* Added SetInnerHTML method

* Added E2E tests

* Refactored GetInnerText* methods

* Updated e2e tests

* Moved related E2E tests to folders

* Added error message

* Added E2E tests

* Added E2E for static driver
2019-07-11 17:16:34 -04:00
Tim Voronov
cf43c7fdad
Feature/#293 regular exp operator (#326)
* Added Regexp operator

* Added simple type check

* Fixed linting issue
2019-07-09 14:19:53 -04:00
3timeslazy
cf8c55ab99 Refactoring/#230 xpath (#324)
* sync with MontFerret/ferret

* fix --param handling

When params is converted to map it uses strings.Split,
which slices a string into all substrings separated by :.

* delete degub Println
2019-07-03 15:31:18 -04:00
Tim Voronov
7ce6797e9c
Feature/#230 xpath (#322)
* Implemented XPath for CDP driver

* Added XPATH function

* Added e2e tests for CDP

* Fixed linting issues

* Added support of XPath to HTTP driver

* Fixed linting issues
2019-07-03 14:05:02 -04:00
Tim Voronov
35bfc5e71d
Fixed JSON serialization for HTTPHeader type (#323) 2019-07-03 14:02:32 -04:00
Tim Voronov
84d662c2fc
Fixed improper math operator used in calculating page load timeout (#319) 2019-06-25 15:33:42 -04:00
Tim Voronov
2cfd1040a9
Added missed UA setting (#318)
* Added misset UA setting

* Update doc_ua.fql

* Delete ferret_embedding_basic.go
2019-06-25 12:51:51 -04:00
Tim Voronov
eee801fb5b
Refactoring/input manager (#316)
* Normalized and externalized input logic

* Fixed linting issue

* Removed redundant mutex

* Added missed locks in Page

* Fixed deadlock
2019-06-20 13:21:48 -04:00
Tim Voronov
d7b923e4c3
Feature/#220 iframe support (#315)
* Refactored Virtual DOM structure
* Added new E2E tests
* Updated E2E Test Runner
2019-06-19 17:58:56 -04:00
Tim Voronov
6933798419
Bugfix/#295 arithmetic operators (#298)
* Some work

* Updated Add operator

* Updated Subtract operator

* Updated Subtract operator tests

* Added tests for multiplication

* Added division

* Updated the rest of operators
2019-05-19 12:12:11 -04:00
Adam Argo
65b6981a8e fixes race condition when EventLoad listener isn't removed prior to the next page loading (#281) 2019-05-10 13:14:38 -04:00
Tim Voronov
101da6323a
Added namespaces support (#296)
* Added namespaces support

* Updated regexp for func name validation
2019-05-10 12:53:31 -04:00
3timeslazy
acf2f13dcb Linter Cleanups (#294)
* sync with MontFerret/ferret

* fix --param handling

When params is converted to map it uses strings.Split,
which slices a string into all substrings separated by :.

* remove impossible conditions nil != nil

* delete ineffectual assignments

* replace '+= 1' with '++'

* remove useless comparison with nil

* merge variable declarations

* remove bool comparison

* fix imports

* fix imports

* delete unused file

* use copy instead of loop

* delete unused DummyInterface

* remove unnecassary break statements

* tidy modules
2019-05-03 17:10:34 -04:00
Tim Voronov
e23e73c1c4
Added delay randomization for inputs (#283)
* Added delay randomization for inputs

* Fixed formatting
2019-04-12 21:05:11 -04:00
3timeslazy
de703513e4 Linter Cleanup (#276)
* linter cleanup

* fix default case
2019-03-29 10:48:51 -04:00
Tim Voronov
37fb385ba4
Updated RAND function (#271)
* Updated RAND function

* renamed a func
2019-03-19 16:17:05 -04:00
3timeslazy
1cf260cd59 fix order of arguments (#269) 2019-03-19 12:32:28 -04:00
Tim Voronov
71c246dd17
Feature/#236 cookies (#242)
* Added KeepCookies option to CDP driver

* Added LoadDocumentParams

* Added COOKIE_GET and COOKIE_SET methods
2019-03-15 19:59:05 -04:00
Tim Voronov
803ae0ea24 Fixed string encoding 2019-03-15 00:09:34 -04:00
Tim Voronov
53549de76b Updated style template 2019-03-15 00:06:55 -04:00
Tim Voronov
a2c4610fce Removed IteratorFn 2019-03-15 00:00:21 -04:00
Tim Voronov
32bfd4be3d Added IteratorFn 2019-03-14 22:33:22 -04:00
Tim Voronov
e17ce5a3d5
Feature/#250 wait style 2 (#260)
* Added WAIT_STYLE and WAIT_NO_STYLE

* Added WAIT_NO_STYLE and WAIT_NO_STYLE_ALL functions
2019-03-14 22:10:15 -04:00
Tim Voronov
82f7317ebe
Feature/#250 wait style (#257)
* Added WAIT_ATTR functions
2019-03-13 22:50:29 -04:00
Tim Voronov
376ad77404
Feature/#250 wait style (#255)
* Added support for parsed styles

* Added stdlib function.

* Added e2e tests

* Added e2e tests for STYLE_* functions
2019-03-13 14:51:30 -04:00
Tim Voronov
201ff95f6c Ignore empty CDP address value 2019-03-06 22:54:12 -05:00
Tim Voronov
d0caef8be7
Feature/#229 wait no element (#249)
* Added possibility to wait for an element or a class absence
2019-03-06 21:52:41 -05:00
Tim Voronov
b702f127ed
Fixed graceful process termination (#240) 2019-02-26 15:32:50 -05:00
Tim Voronov
63dfcdeefd
Fixed dot notation for HTML elements (#239)
* Fixed dot notation for HTML elements
2019-02-25 21:46:39 -05:00
Tim Voronov
14dd7ac40b
Fixed incorrect String.length (#238)
* Fixed incorrect String.length
2019-02-24 13:21:34 -05:00
Tim Voronov
eb523f01cc
Feature/#221 mouse events (#237)
* Initial work

* Added MoveMouseByXY and ScrollByXY

* Fixed liniting issues
2019-02-23 17:52:01 -05:00
Tim Voronov
2be0d471ac Updated default driver registration 2019-02-21 13:04:38 -05:00
Tim Voronov
6e15846d0f
Added Context to HTML methods (#235)
* Added Context to HTML methods

* Fixed unit tests

* Updated timeout

* Fixed WAIT_CLASS timeout
2019-02-20 21:24:05 -05:00
Tim Voronov
34c8c02258
Refactoring/externalized html (#234)
* Externalized HTML drivers

* Fixed unit tests

* Updated logging

* Added support to set default driver

* Updated GetIn and SetIn helpers
2019-02-19 18:10:18 -05:00
Tim Voronov
f8e061cc80
Move value specific Iterable and Iterator interfaces into core module (#233)
* Move value specific Iterable and Iterator interfaces into core module

* Update Makefile

Reverted test command

* Update collection.go

* Fixed wrong iterator usage

* Updated use of switch statements
2019-02-15 07:41:08 -05:00
Tim Voronov
1af8b37a0f
New type system (#232)
* New type system

* Fixed dot notation for HTML elements
2019-02-13 12:31:18 -05:00
3timeslazy
b3bcbda3b9 rename functions Parse<Type>P -> MustParse<Type>. while dined (#231) 2019-02-12 18:01:49 -05:00
Tim Voronov
749cb8945d Fixed linting issues 2019-02-08 13:45:21 -05:00
eruca
e9cd4d414d return the *FqlCompiler customed replace default (#227)
Invalid return value
2019-02-04 15:30:12 -05:00
3timeslazy
24512715e5 rename KEEP -> KEEP_KEYS (#223) 2019-02-01 21:39:28 -05:00
Tim Voronov
fdf3c7c33f Updated JS event dispatching 2019-01-21 13:58:37 -05:00
jasonparekh
61933caec9 Allows simulated clicks to be canceled (#222)
User-generated mouse clicks are cancelable (and thus preventDefault() works), but the simulated MouseEvents were not cancelable.  This led to some sites to have different behavior between user-generated and simulated clicks.

See https://developer.mozilla.org/en-US/docs/Web/Events/click.
2019-01-21 13:52:17 -05:00
3timeslazy
7cb7d75204 Autocomplete REPL (#219)
* add pkg/stdlib/objects Length function

* rename lenght.go -> length.go

* fix tests according to other tests

* add new tests to length tests

* delete objects method Length

* add objects method Has

* add objects function Keys

* small fixes in Keys and Has functions

* change Has function

* unit tests for Keys function

* add unit tests for merge. also little change in lib.go

* add doc to Keys function

* Merge function prototype

* add unit tests for KEEP function

* added KEEP function

* added doc for KEYS function

* update lib.go

* update lib.go

* upd merge prototype

* addded isEqualObjects function to objects tests

* change object method Compare

* added unit tests for Compare method

* changed Compare method

* fix Compare method

* rename method Clone to Copy

* added Cloneable interface

* added Value to Cloneable interface

* implemented Cloneable intefrace by array

* added some more unit tests for values.Array

* fix values.Array.Compare method

* added one more unit test

* implemented Cloneable interface by Object

* unit tests for Object.Clone

* move core.IsCloneable to value.go

* change Clone function

* move IsClonable to package values

* updated MERGE unit tests

* added MERGE function

* added MERGE to lib

* added one more test

* changed MERGE function

* rewrite a few comments according to Go Best Practices

* rewrite comments

* fix bug when result of the KEEP function was dependent on source object

* some more changes in KEEP function

* init VALUES function

* push test with bug

* add stress test

* small changes in stress tests

* changes in object.Comapare

* change object.Compare

* add more tests for object.Compare

* added comments to object.Compare function

* change object.Comapare

* delete useless comment

* one more change in object.Compare

* init datetime

* added test for datetime

* added lib.go

* add helpers functions

* made values.DefaultTimeLayout public

* added DATE function

* added DATE_DAYOFWEEK function

* added DATE_YEAR function

* added DATE_MONTH function

* added one more testCase for DATE_MONTH

* added DATE_DAY function

* added DateDay to lib

* added DATE_HOUR, DATE_MINUTE and DATE_SECOND functions

* added DATE_DAYOFYEAR, DATE_LEAPYEAR, DATE_MILLISECOND functions

* fix names in tests

* one more case into dayofyear_test

* added DATE_QUARTER function

* added DATE_DAYS_IN_MONTH function

* added DATE_FORMAT function

* added -v flag into go test

* update DATE_FORMAT test cases

* added one more test case

* add helpers functions

* made values.DefaultTimeLayout public

* added DATE function

* added DATE_DAYOFWEEK function

* added DATE_YEAR function

* added DATE_MONTH function

* added one more testCase for DATE_MONTH

* added DATE_DAY function

* added DateDay to lib

* added DATE_HOUR, DATE_MINUTE and DATE_SECOND functions

* added DATE_DAYOFYEAR, DATE_LEAPYEAR, DATE_MILLISECOND functions

* fix names in tests

* one more case into dayofyear_test

* added DATE_QUARTER function

* added DATE_DAYS_IN_MONTH function

* added DATE_FORMAT function

* added -v flag into go test

* Set codecov support for all branches

* update DATE_FORMAT test cases

* Updated codecov settings

* Added panic recovery mechanism (#158)

* Bump github.com/mafredri/cdp from 0.19.0 to 0.20.0 (#159)

Bumps [github.com/mafredri/cdp](https://github.com/mafredri/cdp) from 0.19.0 to 0.20.0.
- [Release notes](https://github.com/mafredri/cdp/releases)
- [Commits](https://github.com/mafredri/cdp/compare/v0.19.0...v0.20.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Bump github.com/gofrs/uuid from 3.1.1 to 3.1.2 (#160)

Bumps [github.com/gofrs/uuid](https://github.com/gofrs/uuid) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/gofrs/uuid/releases)
- [Commits](https://github.com/gofrs/uuid/compare/v3.1.1...v3.1.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* added one more test case

* sorter instead Compare now

* rename utils.LOG -> utils.PRINT

* rename utils.Logs -> utils.Print

* added DATE_ADD, DATE_SUBTRACT functions

* use keyed fields now

* added DATE_DIFF function

* delete unused var

* delete useless type cast

* fixed a bug when adding/subtrating did not take an amount of units

* added DateCompare function

* renames

* fix small bug

* fix

* init autocompleter

* init autocomplete

* delete init tokens and add fql.LiteralNames in autocomplete
2019-01-19 10:00:49 -05:00
Tim Voronov
2712c3836b Updated parser 2018-12-24 11:54:47 -05:00
Tim Voronov
e535f602d5 Added unit tests for Setter and Getter interfaces 2018-12-24 10:48:34 -05:00
Tim Voronov
5620be211c
Next (#214)
* Renamed DOCUMENT to PAGE

* Added PageLoadParams

* Added PageLoadParams

* Renamed LoadPageParams -> PageLoadParams

* Added support for context.Done() (#201)

* Bug/#189 operators precedence (#202)

* Fixed math operators precedence

* Fixed logical operators precedence

* Fixed array operator

* Added support for parentheses to enforce a different operator evaluation order

* Feature/#200 drivers (#209)

* Added new interfaces

* Renamed dynamic to cdp driver

* Renamed drivers

* Added ELEMENT_EXISTS function (#210)

* Renamed back PAGE to DOCUMENT (#211)

* Added Getter and Setter interfaces
2018-12-21 23:14:41 -05:00
Paul
6bc4b3e0e3 Prevent memory leak (#213) 2018-12-19 16:12:37 -05:00
Tim Voronov
a219e776ad
Switched from int to int64 (#188) 2018-11-30 19:31:08 -05:00
Tim Voronov
39e379f0f2
Decoupled runtime and HTML driver initialization (#198)
* Decoupled runtime and HTML driver initialization

* Updates
2018-11-30 19:30:55 -05:00
Tim Voronov
f5901e2226
Switched from 0.0.0.0 to 127.0.0.1 (#197) 2018-11-30 14:12:08 -05:00
Tim Voronov
b3611c5713
Fixed use of duplicate variable as a source in FOR IN statement (#196) 2018-11-30 13:12:00 -05:00
Tim Voronov
dc3de71554
Bug/#194 empty value (#195)
* Fixes

* Fixed path to HTMLElement.value
2018-11-28 07:39:12 -05:00
Tim Voronov
0f3af382a9
Fixes (#193) 2018-11-22 11:44:05 -05:00