2016-02-12 4 views
3

У меня есть список страниц в таблице, и вам нужно щелкнуть по следующей странице.Protractor - получить конкретный элемент в списке

<td><span>1</span></td> 
<td><a href="2">2</a></td> 
<td><a href="3">3</a></td> 

Таким образом, если браузер в настоящее время на странице 1, мне нужно нажать на странице 2.

В настоящее время я получаю элементы от «тд», пройдя через цикл (или функции отображения), чтобы попытаться найти текущую страницу, а затем попытаться найти следующую страницу. Я продолжаю получать проблемы с памятью или таймауты, как я в настоящее время пытаюсь ее решить.

Функция Mapping (проблемы с памятью) Суть: https://gist.github.com/CaseyHaralson/9965492d894565bfe9d7

Для цикла (тайм-аут) Суть: https://gist.github.com/CaseyHaralson/7153be9f437f4e3a7f5c

для цикла также выглядит как он имеет потенциальную проблему не обязательно разрешения страницы в правильном порядке , Примечание: я не могу изменить html.

ответ

1

Предполагая, что текущая страница имеет span, что-то, как это должно работать ...

var clickNextPage = function() { 
    $('td span').getText().then(function(pageNum) { 
    element(by.cssContainingText('td a', pageNum + 1)).click(); 
    }); 
}; 
+0

Проще, чем я пытался. Благодаря! – Casey

2

Эта функция должна нажать HREF на основе количества страниц вы передаете в.

var visitPage = function (pageNumber) { 
    $('a[href="' + pageNumber + '"']).click(); 
}; 

it('should visit page three', function() { 
    expect(browser.getCurrentUrl()).toContain('1'); 
    visitPage('3'); 
    expect(browser.getCurrentUrl()).toContain('3'); 
}); 
+0

К сожалению , Я слишком упростил свою ситуацию. Невозможно рассчитать hrefs. – Casey

Смежные вопросы