Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scrapers error out on not finding element by selector #102

Closed
mrWh1te opened this issue Mar 4, 2021 · 1 comment · Fixed by #105
Closed

Scrapers error out on not finding element by selector #102

mrWh1te opened this issue Mar 4, 2021 · 1 comment · Fixed by #105
Labels
botaction bug Something isn't working enhancement New feature or request

Comments

@mrWh1te
Copy link
Owner

mrWh1te commented Mar 4, 2021

Describe the bug
Errors when attempting to scrape element that does not exist

To Reproduce
Use the $() or $$() BotActions with a selector for an element(s) that does not exist

Expected behavior
The selector BotActions to return undefined instead of throwing an error

@mrWh1te mrWh1te added bug Something isn't working botaction enhancement New feature or request labels Mar 4, 2021
mrWh1te added a commit that referenced this issue Mar 5, 2021
- viewStories prototype
- instagram navigation botactions
- instagram save your login info UX botactions
- elementExistsInDocument & textExistsInDocument helpers
- elementExists, textExists botactions
- edge case for no element found in $ botaction #102
@mrWh1te mrWh1te mentioned this issue Mar 5, 2021
29 tasks
mrWh1te added a commit that referenced this issue Mar 5, 2021
- undefined edge case will not attempt to parse undefine but return
undefined
mrWh1te added a commit that referenced this issue Apr 21, 2021
* instagram & core botactions/helpers

- viewStories 
- instagram navigation botactions
- instagram save your login info UX botactions
- elementExistsInDocument & textExistsInDocument helpers
- elementExists, textExists botactions

* bug fix - edge case for no element found in $ botaction #102

* clickText

* clickElementWithText helper

* fix #102 $$ multiple elements scraping

- undefined edge case will not attempt to parse undefine but return
undefined

* botactions getCookies & deleteCookies & instagram logout

- used in tandem in a pipe to delete cookies for urls associated with a
browser page
   - this in replace of deleteAllCookiesForCurrentUrl BotAction

* instagram logout

* deleteIndexedDB by database name

* e2e test $() for not finding html node

- edge-case behavior modified -> originally threw error, now returns
undefined

* e2e test textExists & elementExists

* e2e clickText

- ignore serialized code injected into puppeteer, covered by e2e

* e2e clickText edge-case

* integration test getCookies

* integration test deleteCookies

* e2e cookies testing

* rollDice()() BotAction #85

- run assembled botactions if a virtual dice with X sides rolls a 1
   - number of sides X is set via HO param, default is 1
   - number to roll can be set via 2nd HO param, default is 1

* helper diceRoll() unit-test

- added edge-case for dice with zero or negative number of sides which
on roll, returns 0

* probably() botaction - new established BotAction group: Random

- randomDecimal helper using pseudo Math.random()
- rollDice() has probability limitation of no probabilities greater than
50% therefore need another botaction
- rollDice()() uses probably()()

- randomDiceRoll() helper similar to randomDecimal() helper

* added ability to override random decimal function

- if prefer not pseudo random ie random derived via buffer/crypto then
set your own function in the helper
- probably()() HO 2nd param (optional) to override random number generator
- instead of using pseudo random number generating, use a
buffer/crypto/other

* randomDecimal HO injector for overriding the default pseudo random generating function

* not going to force pipe() on randomDecimal()() injector

- similar to files()(), because indexedDB has botactions that rely on
piping, and the context might be a chain, so with that you want to
enforce pipe because it makes sense (however arugably oppose it can be
said)

* unit & integration tests

- BotActions group Random: randomDecimal()(), rollDice()(), probably()()

* random botactions test coverage

* indexed-db e2e testing

* house cleaning

* code smells

* Nullish Assignment

* simplify goTo implementation

* readmes updated

* consolidated instagram URL helpers into simpler constants

* fix instagram barrel + desktop widths

* new published minor versions for core and instagram pckgs

- instagram reference latest core pckg
@mrWh1te
Copy link
Owner Author

mrWh1te commented Apr 21, 2021

fixed in #105

released in core v1.3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
botaction bug Something isn't working enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant