Как нажимать на кнопку, которая присутствует в середине страницы

HTML-код

<a href="" ng-click="select()" tab-heading-transclude="" class="ng-binding">RESUME</a>

Ответ 1

Переключитесь на новую вкладку, прежде чем пытаться щелкнуть элемент. Позже подождите, пока элемент не будет присутствовать и находится в состоянии clickable, используя ExpectedConditions экземпляр и elementToBeClickable() функцию в транспортире. После того, как он находится в состоянии clickable, выполните действие click(). Однако функция click() в транспортимере должна автоматически прокручивать страницу без необходимости прокрутки. Вот как -

browser.getAllWindowHandles().then(function(handles){
    browser.switchTo().window(handles[1]).then(function(){
        var elem = element(by.partialLinkText("RESUME"));
        browser.wait(protractor.ExpectedConditions.elementToBeClickable(elem), 10000)
        .then(function(){
            elem.click();
        });
    });
});

Если вышеприведенный код по-прежнему не нажимает, добавьте строку прокрутки, прежде чем нажимать на нее, разрешив обещание вернуть функции. Вот как -

var elem = element(by.partialLinkText("RESUME"));
browser.wait(protractor.ExpectedConditions.elementToBeClickable(elem), 10000)
.then(function(){
    elem.getLocation().then(function(loc){
        browser.executeScript('window.scrollTo('+loc.x+','+loc.y+');').then(function(){
            elem.click();
        });
    });
});

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

Ответ 2

"После нажатия ссылки в нашем приложении страница открывается на новой вкладке".... Новая вкладка браузера? Сначала перейдите на новую вкладку. Затем нажмите на эту кнопку. Попробуйте browser.getWindowHandles(). Он вернет вам набор.