Перейти к содержимому

Фотография

не проходит клик по линку на странице

click xpath

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 JohnWind

JohnWind

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 28 сентября 2014 - 14:13

Есть страница с текстом + линками

 

среди линков, если некоторое кол-во линков (без уникальных параметров: id, name, etc.), с одинаковым текстом: Удалить из списка

 

При попытке выполнить следующий код, никакого эффекта, а так же никаких ошибок в лог:

 

Command: open

Target: линк на страницу

 

Command: waitForPageToLoad

 

Command: click

Target: xpath=(//a[contains( text(),'Удалить из списка')])

 

 

Поясните плз в чём косяк?


  • 0

#2 mazik7

mazik7

    Новый участник

  • Members
  • Pip
  • 63 сообщений
  • ФИО:Мазик
  • Город:Красноярск

Отправлено 28 сентября 2014 - 15:46

По xpath'у вроде как все правильно. Хотя можно использовать и a[text()='Удалить из списка']. Либо TextLink (Вроде как). Так вот проверьте этот самый текст на наличие пробелов перед и после текста. Потом можно попробовать использовать вместо текста - саму ссылку - a[@href='ссылка'].


  • 0

:smile:


#3 JohnWind

JohnWind

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 28 сентября 2014 - 15:59

Увы... 

 

использовать линк нельзя - он динамический... так что вбивание каждого из них в код - равносильно ручному нажатию на каждый, а у меня их более 500 штук  ;)

Так же проверил наличие "лишних пробелов" - таковых нет.

 

a[text()='Удалить из списка'] - оформленный как:

 

Command: click

Target: xpath=(//a[(text()='Удалить из списка')]) - увы так же не помогает

 

действия нет... и ошибок в логе - тоже нет... что ещё более запутывает ситуацию

 

 

---------------------

 

возможно сказывается то, что линки находятся внутри таблиц и див-ов...

 

но xpath запрос в виде: 

 

xpath=(//div/a[contains( text(),'Удалить из списка')])

 

или 

 

xpath=(//table/a[contains( text(),'Удалить из списка')])

 

так же не помогают делу...


  • 0

#4 220v

220v

    Активный участник

  • Members
  • PipPip
  • 107 сообщений
  • ФИО:Олег


Отправлено 28 сентября 2014 - 16:33

нам бы кусок кода вида

<div>
     <div>
           <div>
                  <a>

...</div>
 


  • 0

#5 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 29 сентября 2014 - 06:57

Потому что у вас,вы сами сказали, несколько линков для удаления, надо более жестко указывать локатор для клика.


  • 0

#6 JohnWind

JohnWind

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 29 сентября 2014 - 11:49

решил проблему убогим кликером (AutoIt)... забил координаты первых 6ти линков (благо они статичны)... забил клик по координатам + обновление экрана... и по новой... минут 6-9 работы - и всё готово...

 

сам понимаю насколько убогое решение... но сработало...

 

дам чуть больше деталей: 

 

цель: очистить спискок друзей ВКонтакте

надо было удалить более 900 людей из списка (всех подряд)

 

локатор нужного линка "Убрать из друзей" - не так то и легко было подцепить, т.к. у этого линка нет ни ид, ни имени

более того, там небыло по сути даже самого линка/урла: при нажатии вызывалась функция removeFriend

 

как уже должно быть ясно, эти линки жили в таблице под кучей div-ов

 

поэтому и пришлось вязать через xpath на текст при линке

что странно, при поиска текста "Убрать из друзей" через assertBodyText - кол-во таковых слов определялось верно

а вот при поиске линков с таким текстом - никаких результатов кроме фейла не возвращалось...

 

 

вопросы глобальные так и остались:

 

1. почему код xpath=(//a[contains( text(),'Убрать из друзей')]) - так и не срабатывал?

2. почему небыло никакой ошибки в логе раз ничего не было сделано?


  • 0



Темы с аналогичным тегами click, xpath

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных