L'élément n'est pas visible erreur (pas de possibilité de cliquer sur un élément)
Je veux cliquer sur un bouton radio, apparaît sur une page web. Le Code est comme suit:
Code HTML:
<div class="small-checkbox red-theme raleway-regular text-muted2 position-relative">
<div class="city-checkbox inline-block position-relative" ng-class="{'rounded-checkbox': main.current_city_id == 1, 'mb-20': main.ifDeviceIsPhone}">
<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect mh-20" for="mumbaiCity" ng-class="{'is-checked' : main.current_city_id == 1}">
<input type="radio" id="mumbaiCity" class="mdl-radio__button position-relative vertical-middle" name="city" value="1" ng-click="main.setCity('Mumbai', 1)">
<span class="mdl-radio__label position-relative font15"><img class="city-icon" src="../../../assets/img/cities/mumbai-icon.png">Mumbai</span>
</label>
</div>
</div>
Tesstcase:
//demo-test.js
describe('Protractor Demo App', function() {
jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000000;
it('check item count', function() {
browser.get('<link>');
element(by.id('mumbaiCity')).click();
});
});
Ce test des enchaînements d'erreur:
1) Rapporteur de Démonstration App vérifier le nombre d'éléments
Message:
A échoué: l'élément n'est pas visible
J'ai aussi essayé avec:
element(by.css('[ng-click="main.setCity('Mumbai', 1)"]')).click();
Il donne une erreur:
[16:16:26] E/lanceur - Error: SyntaxError: manquant ) après la liste des arguments
S'il vous plaît suggérer, comment le bouton radio permet d'obtenir sur?
- pourquoi ne pas utiliser angularjs pour écrire ce code js?
- De sa une partie HTML du code angularjs
- Avez-vous essayé d'attente pour l'élément pour devenir visible avant de l'exécuter? Voir Conditions prévues
- voir ma question : stackoverflow.com/questions/36871071/...
- Merci Emma , votre question m'a aussi aidé.
Vous devez vous connecter pour publier un commentaire.
C'est plutôt un problème commun à l'automatisation des tests avec selenium.
Voici les solutions communes:
attendre pour la visibilité de l'élément:
il y a un un autre élément avec la même
id
qui est en fait invisible. Dans ce cas, vous avez besoin pour améliorer votre localisateur pour correspondre à cet élément. Par exemple:Ou, si vous avez plusieurs éléments correspondant à la même localisateur vous pouvez "filtre" un élément visible:
déplacer à l'élément, puis cliquez sur via
navigateur.actions()
:faites défiler jusqu'à afficher de l'élément et cliquez ensuite sur:
cliquez sur via javascript (méfiez-vous de la les différences tout de même):
parfois, vous avez juste besoin de maximiser la fenêtre du navigateur:
function
déclaration de là, merci pour le heads up.