-
Notifications
You must be signed in to change notification settings - Fork 56
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
docu: update locators #148
base: master
Are you sure you want to change the base?
Conversation
This content will be moved to a popover which is open by pressing a toggle button in the toolbar. | ||
A toggle button will be shown only when there is overflowing content. This is a problem for tests because they should only try to press the button when it's visible and interactable. One way to solve this is to always start the application under test with with a fixed screen size. Another way is to first look for any toggle button - with no restriction on visibility, and then press on it only if it exists: | ||
```javascript | ||
var button = element(by.control({ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
have you tested this (why not add а test) ? IMHO this won't work because we have an implicit visible: true selector and so button will be null in case the toggle button is not displayed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tested
docs/usage/locators.md
Outdated
} | ||
})); | ||
|
||
button.getCssValue("visibility").then(function (visibility) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
checking for visibility аттрубте is very tricky, depending on a catch block is a code smell, let's find a better way. Something like finding all elements that match a selector and evaluating the condition if exactly one was found.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we want to click on the element if it's found, and do nothing otherwise, so we don't need a catch block. an assertion here would be nice for debugging but not required
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I delved a little bit in the docs of Protractor and it seems the correct way that does not involve catch block is isPresent().
} | ||
})); | ||
|
||
hiddenToggleButton.isPresent().then(function (isPresent) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO:
- try with isDisplayed,isEnabled
- try with executeScript and jq inside the browser => export as some helper on browser object
No description provided.