Comments (6)
I'll check it.
from protractor-helper.
O que eu constatei até agora:
Para pegar o elemento na mensagem de erro é utilizado esse trecho: htmlElement.parentElementArrayFinder.locator_.value
Pra testes e ter os resultados abaixo, eu excluí o final .value
da função getDefaultIsNotVisibleMessage
, fazendo com que seja impresso o locator_
do elemento que deu erro.
Ao utilizar o by.id, o locator_
retornado é esse:
By(css selector, *[id="asdasd"])
O value, que será adicionado na mensagem, é *[id="asdasd"]
.
Portanto, o value
é o valor à direita da linha dentro da função By()
.
Porém, ao utilizar o by.cssContainingText, o locator
retornado é diferente dos demais:
by.cssContainingText("asasda", "asdasd")
Dessa forma, não tem value para retornar, por isso na mensagem está aparecendo undefined
.
O problema ocorre apenas quando você utiliza o locator
cssContainingText
, com os outros locators o value é retornado corretamente devido à retornarem a funçãoBy()
.
O que eu farei agora será estudar as opções de retorno do parentElementArrayFinder
, para só então ver a melhor forma de corrigir.
Já pensei nas seguintes opções de correção que serão minhas últimas opções, pois não quero deixar as mensagens de retorno dos locators que não sejam o cssContainingText
ruins:
- Ao invés de imprimir o value do locator, imprimir o locator. As mensagens ficariam assim:
1.1Failed: element with locator 'By(css selector, *[id="asdasd"])' is not visible
Nesse caso ficará pior para o usuário, pois imprimia o value*[id="asdasd"])
.
1.2Failed: element with locator 'by.cssContainingText("asasda", "asdasd")' is not visible
Nesse caso, especificamente com ocssContainingText
, o usuário passará a saber qual locator não está visível, ao invés de imprimirundefined
. - Criar alguma validação de que se for
cssContainingText
, imprimir o locator, e não o value. Não sei se é possível.
from protractor-helper.
Adendo:
Não ocorre apenas com o cssContainingText
, mas com todos os elementos específicos do Protractor, como o buttonText
e o partialButtonText
.
from protractor-helper.
@wlsf82
Pelo que estudei, realmente a única solução é essa:
Ao invés de imprimir o value do locator, imprimir o locator. As mensagens ficariam assim:
1.1 Failed: element with locator 'By(css selector, *[id="asdasd"])' is not visible
Nesse caso ficará pior para o usuário, pois imprimia o value *[id="asdasd"]).
1.2 Failed: element with locator 'by.cssContainingText("asasda", "asdasd")' is not visible
Nesse caso, especificamente com o cssContainingText, o usuário passará a saber qual locator não está visível, ao invés de imprimir undefined.
O que acha de aplicar ela?
Vai ajudar nos locators do protractor, que estão retornando undefined, mas atrapalhar um pouco nos do selenium, que retornam o valor passado.
Se aprovar eu faço as alterações e o PR.
from protractor-helper.
Go ahead. Better to have all cases giving a valid error message, than only some cases.
from protractor-helper.
Closed by 4f9dbaf
from protractor-helper.
Related Issues (20)
- waitForElementVisibility not giving appropriate validation message HOT 4
- Add link to the code of conduct in the README.md file HOT 2
- Update README.md file with a section about its translated version HOT 4
- Add method waitForAlertToBePresent HOT 7
- Add MIT license badge HOT 4
- Update credits section of GitHub Page HOT 2
- Release new version to update docs on NPM HOT 2
- Should we list the index.js file in the files property of the package.json HOT 2
- Enhance the message of `waitForUrlToBeEqualToExpectedUrl` and related methods
- Fix basic example from docs HOT 4
- Update external resources section of README.md with new resource
- Add 🌏 [Language] on top of every doc, not only the readme file
- Autocomplete on VS Code HOT 4
- Add vulnerabilities badge on README.me HOT 5
- Add helper function to abstract ExpectedConditions.textToBePresentInElementValue
- Add helper function to abstract ExpectedConditions.titleContains
- Add helper function to abstract ExpectedConditions.titleIs
- Add helper function to abstract ExpectedConditions.elementToBeSelected
- Does it make sense to translate the LICENSE? HOT 1
- Find a way to add assertions to the e2e tests of protractor-helper itself
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from protractor-helper.