Проблемы с поиском элементов постов хэштега в Instagram - PullRequest
0 голосов
/ 25 декабря 2018

Сценарий:

  1. Вход с именем пользователя и паролем
  2. Поиск по хэштегу
  3. Нажмите на каждое сообщение и нажмите кнопку лайка

Код для поиска поста и лайка:

List<WebElement> postlinks = 
driver.findelements("//a[starts-with(@href, '/p')]");
for(int i=0;i<postlinks.size();i++){
postlinks.get(i).click();
Like.click();.  
}

Мой выпуск:

Размер postlinks вначале равен 21, но увеличивается после прокрутки.Размер изменяется при прокрутке.

Ответы [ 2 ]

0 голосов
/ 25 декабря 2018

Попробуйте использовать while loop

List<WebElement> postlinks = driver.findelements("//a[starts-with(@href, '/p')]");

// define maximum post count to click
int MaxCount = 40;
int i = 0;

while(i < MaxCount) {
    postlinks.get(i).click();
    Like.click();
    i++;
    if(i == postlinks.size()) // index of 20, 40,... then get new element
        postlinks = driver.findelements("//a[starts-with(@href, '/p')]");
0 голосов
/ 25 декабря 2018

Здесь

List<WebElement> postlinks = 
driver.findelements("//a[starts-with(@href, '/p')]");

вы собираете ссылки, допустим, размер равен 21.

Ушли в forLoop

for(int i=0;i<postlinks.size();i++){

Внутри этого выполнения несколько кликов,если вы считаете, что это приводит к увеличению количества ссылок, но все же вы используете постлинки, которые зафиксированы 21.

...