Как написать xPath для дочернего элемента из родительского элемента в Protractor - PullRequest
0 голосов
/ 14 мая 2019

Я работаю над тестированием транспортира, где я нашел один элемент по классу. Теперь я хочу найти его родного брата на основе элемента, который я нашел ранее.

Как показано в приведенном ниже коде, я нашел диапазон с помощью "element (by.css (locate))". Теперь, основываясь на этом элементе, я хочу нажать на ссылку «а». На странице с разными именами классов есть много одинаковых промежутков. Итак, я хочу щелкнуть по определенному тегу «a» на основе выбранного диапазона классов.

<div>
<span class="123456">
</span>
<a ng-click="openLink()" class="ng-binding">temp</a>

</div>

Я ожидаю нажать на элемент "a", но не могу использовать элемент "(by.css ('[ng-click =" openlink "]'))", потому что существует так много тегов "a" с тот же нг-клик на странице.

Я попробовал приведенный ниже код, но не сработал.

        locate = ".123456";
        var icon = element(by.css(locate));
        element(by.xpath(icon + ' > a')).click();

Ответы [ 4 ]

0 голосов
/ 14 мая 2019

Попробуйте следующее xpath и нажмите на элемент.

element(by.xpath('//a[@class="ng-binding"][text()="temp"]')).click(); 
0 голосов
/ 14 мая 2019

Я пытался использовать следующее.

элемент (by.xpath ( '// * [@ класс = "123456"] / следующий-родственный :: а')) нажмите ();.

прошло, но элемент не щелкнул.

0 голосов
/ 14 мая 2019

Я даю вам код для поиска элемента по тексту ссылки в тестах транспортира.

Вот пример кода:

var myElement = element(by.css('span.123456 + a'));
myElement.click();

Выше кода находит ссылку с «temp»текст, а затем нажимает на него.

Надеюсь, это поможет вам.

0 голосов
/ 14 мая 2019

Попробуйте следующее

var ele = element(by.cssContainingText('div > a', 'temp'));

ele.click();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...