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

Фотография

QTP 10: посчитать количество писем на Яндексе


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

#1 EugeneL

EugeneL

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

  • Members
  • PipPip
  • 101 сообщений

Отправлено 08 ноября 2011 - 09:22

Встала задача посчитать количество писем в ящике электронной почты. Допустим, на yandex. Честно говоря, такую задачу решаю впервые. Первое, что пришло в голову: найти таблицу, которая выводит письма, и посчитать в ней количество строк. Но QTP не хочет фиксировать таблицу в ресурсах, потому хотел спросить у коммюнити, как к ней можно обратиться.

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

Подскажите, как бы вы решали такую задачу, с чего бы начали?
  • 0

#2 alexander zubko

alexander zubko

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Александр Зубко


Отправлено 08 ноября 2011 - 10:40

Встала задача посчитать количество писем в ящике электронной почты. Допустим, на Yandex. Честно говоря, такую задачу решаю впервые. Первое, что пришло в голову: найти таблицу, которая выводит письма, и посчитать в ней количество строк. Но QTP не хочет фиксировать таблицу в ресурсах, потому хотел спросить у коммюнити, как к ней можно обратиться.

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

Подскажите, как бы вы решали такую задачу, с чего бы начали?


Нужно именно через гуи? Если нет, я бы копал в строну апи к сервису или использовал бы библиотеки для работы с протоколом.
  • 0

#3 EugeneL

EugeneL

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

  • Members
  • PipPip
  • 101 сообщений

Отправлено 08 ноября 2011 - 10:55

Нужно именно через гуи? Если нет, я бы копал в строну апи к сервису или использовал бы библиотеки для работы с протоколом.

В идеале, надо достучаться до коллекции с письмами. Думаю, через гуи -- не лучший выход... пока ищу какой-нить функционал на vbs, получающий почту

Просто, несколько непонятно, в каком контексте идет работа после того, как я залогинился. И к чему я обращаться могу и как из QTP
  • 0

#4 Zenturio

Zenturio

    Опытный участник

  • Members
  • PipPipPipPip
  • 386 сообщений
  • ФИО:Дмитрий
  • Город:Смоленск - Москва


Отправлено 08 ноября 2011 - 11:19

Нужно именно через гуи? Если нет, я бы копал в строну апи к сервису или использовал бы библиотеки для работы с протоколом.

В идеале, надо достучаться до коллекции с письмами. Думаю, через гуи -- не лучший выход... пока ищу какой-нить функционал на vbs, получающий почту

Просто, несколько непонятно, в каком контексте идет работа после того, как я залогинился. И к чему я обращаться могу и как из QTP

Там рядом с ящиком не написано число писем? Логинитесь и берете цифру оттуда
  • 1

#5 EugeneL

EugeneL

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

  • Members
  • PipPip
  • 101 сообщений

Отправлено 08 ноября 2011 - 11:25

Там рядом с ящиком не написано число писем? Логинитесь и берете цифру оттуда

Идея хороша, но на следующем шаге надо проверить, пришло ли письмо с темой "Ping" и с телом "Test". Как это через action сделать пока смутно представляю
  • 0

#6 Zenturio

Zenturio

    Опытный участник

  • Members
  • PipPipPipPip
  • 386 сообщений
  • ФИО:Дмитрий
  • Город:Смоленск - Москва


Отправлено 08 ноября 2011 - 13:08

Там рядом с ящиком не написано число писем? Логинитесь и берете цифру оттуда

Идея хороша, но на следующем шаге надо проверить, пришло ли письмо с темой "Ping" и с телом "Test". Как это через action сделать пока смутно представляю

Хм, каждый элемент таблицы имеет свой идентификатор или тег, ищите способ обращаться к элементу таблицы писем
как найдете, все можно вытащить регулярным выражением
  • 1

#7 EugeneL

EugeneL

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

  • Members
  • PipPip
  • 101 сообщений

Отправлено 08 ноября 2011 - 14:27

Узнал className строки с новыми письмами. Пока решил поступить так: считать количество таких элементов на странице, затем переходить на следующую страницу, если есть такая ссылка. Таким образмо, пройду через все страницы и получу количество писем

Upd. Столкнулся с такой проблемой: ссылка "следующая" строится динамически и QTP сохраняет ее в качестве нового ресурса (с каждой ссылкой ассоциирован переход на страницу с номером, на 1 большим, чем номер текущей, номер входит в состав url). Однако, такая ссылка единственная на странице. Может, как-то можно перейти на гиперссылку, зная ее название и надпись?

Upd2. Вытащил гиперссылку по свойству name, но не могу определить ее доступность:
Exist() = True
Object.Disabled = False
Object.IsDisabled = False

Гиперссылка есть на странице, но не кликабельна. Может, это можно как-то определить? Сама гиперссылка отыскивается так:
Set hlDesc = Description.Create
hlDesc("class").Value = "b-pager__next"

Set hlList = currPage.ChildObjects(hlDesc)
For i = 0 to (hlList.Count()-1)
    Set urlNextMail  = hlList(i)		'there would be the only element in list

Next

Нашел скрытый контрол возле количества писем, взял цифры в итоге оттуда

Сообщение отредактировал EugeneL: 09 ноября 2011 - 13:18

  • 0

#8 ch_ip

ch_ip

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 097 сообщений
  • ФИО:Павел Абдюшев
  • Город:Москва


Отправлено 17 ноября 2011 - 14:40

Мне кажется, что проще эту задачу решать по-другому:
Выкачать письма в аутлук и потом работать с COM-объектом Outlook'a напрямую без GUI.
Будет намного надежнее и без парсинга яндексовых страниц
Или вообще найти утилиту/скрипт на чем-нибудь, кто может напрямую по IMAP с веб-сервером общаться и использовать ее
  • 0


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

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