vendredi 5 février 2016

Testing relative positions of elements

On the page under test I have the following Support link: enter image description here

Which is represented with the following HTML:

<div class="ap-version-panel ap-version-support">
    <a href="http://site/support.html" target="_blank" ng-keydown="ApVersionCtrl.keydownHandler($event)"><i class="fa fa-external-link"></i>Support</a>
</div>

What I'm trying to is to test that the icon is located before the "Support" text. How can I do that?


I've tried the following - locate the icon element with an XPath that additionally checks that there is "Support" text after and check if the element is present:

expect(element(by.xpath("//text()[. = 'Support']/preceding-sibling::i[contains(@class, 'fa-external-link')]")).isPresent().toBe(true);

This works but it is quite ugly and I don't like that the actual position check is hidden inside the XPath expression which is not really readable and reliable. Need something more explicit.

Aucun commentaire:

Enregistrer un commentaire