Автор Тема: [Окна, Диалоги] cloud mail клик по нужному элементу  (Прочитано 3123 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн kristow13 [?]

  • Новичок
  • *
  • Сообщений: 76
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Я зайдя на страницу cloud.mail.ru хочу кликнуть по нужному файлу, получить URL на скачивание этого файла, скопировать его в буфер.

Вот код того самого элемента:
<div data-id="/742_report.zip" class="b-datalist__item b-datalist__item_thumb"><div title="742_report.zip" data-id="/742_report.zip" class="b-thumb b-thumb_"><div class="b-thumb__pic"><div class="b-thumb__icon-wrapper"><div class="b-thumb__icon"><i class="ico ico_filetype-big ico_filetype-big_ ico_filetype_archive"></i></div></div><div class="b-thumb__overlay js-preview-link" data-name="link"><div class="b-thumb__info"><div class="b-thumb__info__ctrl" data-name="ctrl"><div data-bem="cbx" data-id="/742_report.zip" class="js-cbx cbx js-item-cbx"><div class="cbx__checkmark"></div></div><span class="b-thumb__info__ctrl__icon b-thumb__info__ctrl__icon_inactive" data-name="publish"><i data-bem="ico" class="ico ico_datalist ico_datalist_publish ico_datalist_publish_inactive"></i></span></div></div></div></div><div class="b-thumb__name"><a rel="history" class="js-href b-thumb__name__link" href="https://cloclo22.datacloudmail.ru/view/742_report.zip?etag=3990D40C2FA7CB85E32BF9A4B85819B6C2B9EEEE&amp;x-email=arh-imperiaplastik%40mail.ru" data-name="link"><span class="b-thumb__name__text">742_report.zip</span></a></div></div></div>
Скрин для наглядности прикрепил...

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

Либо второй способ, это эмуляция нажатия правой кнопки мыши по объекту для получения меню, и в этом меня выбрать пункт "Получить ссылку".


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться
« Последнее редактирование: Июнь 03, 2015, 16:49:13 от kristow13 »

Русское сообщество AutoIt

[Окна, Диалоги] cloud mail клик по нужному элементу
« Отправлен: Июнь 03, 2015, 15:45:10 »

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1348
  • Репутация: 166
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Код: AutoIt [Выделить]
$oLinks = _IETagNameGetCollection($oIE, "a")
If IsObj($oLinks) Then
    For $oLink In $oLinks
        If StringInStr($oLink.href, "742_report.zip") Then
            $sLink = $oLink.href
            ExitLoop
        EndIf
    Next
EndIf
If $sLink <> "" Then
    ClipPut($sLink)
    MsgBox(0, "", $sLink)
Else
    MsgBox(16, "error", "error get link, link not found")
EndIf
 


Оффлайн kristow13 [?]

  • Новичок
  • *
  • Сообщений: 76

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Спасибо за ответ.
Но мне нужна не ссылка на скачивание текущего файла... А получить ссылку для публикации ссылки вне cloud.mail.ru
т.е. для получения внешней ссылки файла...
Прикрепил скрин для наглядности. Такое окно появляется если нажать на значок цепочка, или по второму варианту...


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1348
  • Репутация: 166
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
А если так? 
Код: AutoIt [Выделить]
$oIE.document.getElementsByClassName("ico_datalist_publish").item(0).click();


Русское сообщество AutoIt

Re: [Окна, Диалоги] cloud mail клик по нужному элементу
« Ответ #3 Отправлен: Июнь 03, 2015, 17:30:33 »

Оффлайн kristow13 [?]

  • Новичок
  • *
  • Сообщений: 76

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Ура!
Окошко с ссылкой открылось!
Спасибо.
Осталось саму ссылку из окна вытащить  :whistle:

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1348
  • Репутация: 166
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Ура!
Окошко с ссылкой открылось!
Спасибо.
Осталось саму ссылку из окна вытащить  :whistle:
А у неё код какой? (у этого окошка)...

Оффлайн kristow13 [?]

  • Новичок
  • *
  • Сообщений: 76

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Вот код этого окошка:

Нажмите для отображения изображения в оригинальном размере.
https://cloud.mail.ru/public/HDqP/E7r8i3iNP

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1348
  • Репутация: 166
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Текстом напиши

Русское сообщество AutoIt

Re: [Окна, Диалоги] cloud mail клик по нужному элементу
« Ответ #7 Отправлен: Июнь 03, 2015, 17:39:30 »

Оффлайн kristow13 [?]

  • Новичок
  • *
  • Сообщений: 76

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Вот код того окна:
<div class="b-layer__container b-layer__container_publish"><div class="b-layer__placeholder"><button title="Закрыть" class="btn btn_layer_close " data-bem="btn" data-name="close"><i class="ico ico_layer_close ico_layer" data-bem="ico"></i></button><div class="publishing__placeholder"><div class="publishing"><div class="publishing__block publishing__link"><div class="publishing__title">Ссылка на файл «742_report.zip»</div><div class="publishing__url"><input class="publishing__url__input publishing__url__input_" readonly="readonly" placeholder="Доступ к ссылке закрыт" value="https://cloud.mail.ru/public/AjJ2/U42pgvTYK" data-name="url" data-non-first-click=""><div class="publishing__url__buttons"><button class="btn btn_main btn_publishing-url btn_ " style="display: none;" data-bem="btn" data-name="copy"><span class="btn__text">Копировать</span></button><button class="btn btn_publishing-url btn_ " data-bem="btn" data-name="popup"><span class="btn__text">Посмотреть</span></button></div></div><div class="publishing__controls"><button class="btn btn_link btn_link_unpublish " data-bem="btn" data-name="unpublish"><span class="btn__text">Удалить ссылку</span></button></div></div><div class="publishing__block publishing__share"><div class="publishing__title publishing__share__title">Доступ к файлу</div><div class="publishing__share__placeholder"><div class="share share_view"><div class="share__public-link"><span class="share__public-link__text"><b>Просмотр</b> доступен</span> <span class="share__public-link__icon"><i class="ico ico_sharing_publish_active" data-bem="ico"></i></span> <span class="share__public-link__value">всем, у кого есть ссылка</span></div></div></div><div class="b-notice" style="display: none;" data-bem="b-notice"><i class="ico ico_notice ico_notice_error" data-bem="ico"></i><span class="b-notice__text b-notice__text_error"></span></div></div><div class="publishing__block publishing__social  "><div class="publishing__title publishing__social__title">Поделиться</div><div class="publishing__social__btns"><button class="btn btn_neighboring btn_social btn_social-email btn_enabled btn_ " data-bem="btn" data-name="social" data-id="email"><i class="ico ico_social_email ico_social" data-bem="ico"></i><span class="btn__text btn__text_pad">Отправить</span></button><button class="btn btn_neighboring btn_social btn_social-mm btn_enabled btn_ " data-bem="btn" data-name="social" data-id="mm"><i class="ico ico_social_mm ico_social" data-bem="ico"></i><span class="btn__text btn__text_pad">Мой Мир</span></button><button class="btn btn_neighboring btn_social btn_social-ok btn_enabled btn_ " data-bem="btn" data-name="social" data-id="ok"><i class="ico ico_social_ok ico_social" data-bem="ico"></i><span class="btn__text btn__text_pad">Одноклассники</span></button><button class="btn btn_neighboring btn_social btn_social-vk btn_enabled btn_ " data-bem="btn" data-name="social" data-id="vk"><i class="ico ico_social_vk ico_social" data-bem="ico"></i><span class="btn__text btn__text_pad">ВКонтакте</span></button><button class="btn btn_neighboring btn_social btn_social-fb btn_enabled btn_ " data-bem="btn" data-name="social" data-id="fb"><i class="ico ico_social_fb ico_social" data-bem="ico"></i><span class="btn__text btn__text_pad">Facebook</span></button><button class="btn btn_neighboring btn_social btn_social-tw btn_enabled btn_ " data-bem="btn" data-name="social" data-id="tw"><i class="ico ico_social_tw ico_social" data-bem="ico"></i><span class="btn__text btn__text_pad">Twitter</span></button></div></div></div></div></div></div>
И еще вопросик...
Выше приведенный код открывает окно создания внешней ссылки первого элемента. А как сделать выбор по имени файла?
Вот код для выбора элемента, там сейчас два файла (картинка с именем даты, и zip архив.):
<div class="b-datalist__body"><div class="b-datalist__item b-datalist__item_thumb" data-id="/2015-06-03_17-35-49.jpg"><div title="2015-06-03_17-35-49.jpg" class="b-thumb b-thumb_" data-id="/2015-06-03_17-35-49.jpg"><div class="b-thumb__pic"><div class="b-thumb__pic__image-wrapper"><img class="b-thumb__pic__image" onerror="this.parentNode.style.display='none'" src="https://cloclo14.cloud.mail.ru/weblink/thumb/w0/HDqP/E7r8i3iNP"></div><div class="b-thumb__icon-wrapper"><div class="b-thumb__icon"><i class="ico ico_filetype-big ico_filetype-big_ ico_filetype_picture"></i></div></div><div class="b-thumb__pic__image" style='background-image: url("https://cloclo14.cloud.mail.ru/weblink/thumb/w0/HDqP/E7r8i3iNP");'></div><div class="b-thumb__overlay js-preview-link" data-name="link"><div class="b-thumb__info"><div class="b-thumb__info__ctrl" data-name="ctrl"><div class="js-cbx cbx js-item-cbx" data-bem="cbx" data-id="/2015-06-03_17-35-49.jpg"><div class="cbx__checkmark"></div></div><span class="b-thumb__info__ctrl__icon b-thumb__info__ctrl__icon_active" data-name="publish"><i class="ico ico_datalist ico_datalist_publish ico_datalist_publish_active" data-bem="ico"></i></span></div></div></div></div><div class="b-thumb__name"><a class="js-href b-thumb__name__link" href="https://cloclo14.datacloudmail.ru/view/2015-06-03_17-35-49.jpg?etag=B4080A96B70184E9DD83E2A5B29A9A1B9B65C110&amp;x-email=arh-imperiaplastik%40mail.ru" rel="history" data-name="link"><span class="b-thumb__name__text">2015-06-03_17-35-49.jpg</span></a></div></div></div><div class="b-datalist__item b-datalist__item_thumb" data-id="/742_report.zip"><div title="742_report.zip" class="b-thumb b-thumb_" data-id="/742_report.zip"><div class="b-thumb__pic"><div class="b-thumb__icon-wrapper"><div class="b-thumb__icon"><i class="ico ico_filetype-big ico_filetype-big_ ico_filetype_archive"></i></div></div><div class="b-thumb__overlay js-preview-link" data-name="link"><div class="b-thumb__info"><div class="b-thumb__info__ctrl" data-name="ctrl"><div class="js-cbx cbx js-item-cbx" data-bem="cbx" data-id="/742_report.zip"><div class="cbx__checkmark"></div></div><span class="b-thumb__info__ctrl__icon b-thumb__info__ctrl__icon_inactive" data-name="publish"><i class="ico ico_datalist ico_datalist_publish ico_datalist_publish_inactive" data-bem="ico"></i></span></div></div></div></div><div class="b-thumb__name"><a class="js-href b-thumb__name__link" href="https://cloclo14.datacloudmail.ru/view/742_report.zip?etag=3990D40C2FA7CB85E32BF9A4B85819B6C2B9EEEE&amp;x-email=arh-imperiaplastik%40mail.ru" rel="history" data-name="link"><span class="b-thumb__name__text">742_report.zip</span></a></div></div></div></div>

Помечен как лучший ответ пользователем kristow13 Отправлен Июнь 03, 2015, 20:36:21

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1348
  • Репутация: 166
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
kristow13  [?]
Цитировать
Вот код того окна

Ну, эта ссылка находится в обычном input поле.
Можно сделать так, цикл нужен для возможного ожидания появления элемента:
Код: AutoIt [Выделить]
For $c = 1 To 10
    $oInput = $oIE.document.getElementsByClassName("publishing__url__input").item(0);
    $sLink = _IEFormElementGetValue($oInput)
    If Not @error Then ExitLoop
    Sleep(1000)
Next
If $sLink <> "" Then
    ClipPut($sLink)
    MsgBox(0, "", $sLink)
Else
    MsgBox(16, "error", "error get link, link not found")
EndIf
 



Добавлено: Июнь 03, 2015, 20:18:33
kristow13  [?]
Цитировать
А как сделать выбор по имени файла?
Ну просто пройди по коллекции элементов...
Код: AutoIt [Выделить]
$oElems = $oIE.document.getElementsByClassName("b-thumb")
If IsObj($oElems) Then
    For $oElem In $oElems
        $sFilename = StringStripWS(_IEPropertyGet($oElem, "innertext"), 7)
        ConsoleWrite($sFilename & @CRLF)
        If MsgBox(1, "file", $sFilename) = 2 Then ExitLoop
    Next
EndIf
 

« Последнее редактирование: Июнь 03, 2015, 20:18:33 от alex33, Причина: Объединение сообщений »

Оффлайн kristow13 [?]

  • Новичок
  • *
  • Сообщений: 76

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Спасибо за помощь!
выбор по имени я сделал так:  :whistle:
Код: AutoIt [Выделить]
$divs = _IETagNameGetCollection($oIE, 'div')
Global $ia = 0
For $div In $divs
   if $div.classname == 'b-thumb b-thumb_' Then
      If $div.title == '741_report.zip' Then
         ExitLoop
      EndIf
      $ia = $ia+1
   EndIf
Next
$oIE.document.getElementsByClassName("ico_datalist_publish").item($ia).click();


Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1348
  • Репутация: 166
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
лучше это сделать внутри цикла:
Код: AutoIt [Выделить]
      If $div.title == '741_report.zip' Then
         $oIE.document.getElementsByClassName("ico_datalist_publish").item($ia).click();
         ExitLoop
      EndIf
 


Оффлайн kristow13 [?]

  • Новичок
  • *
  • Сообщений: 76

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Всем привет!
В прошлый раз помогли автоматизировать получение ссылки загруженного файла на cloud.mail.ru

Сейчас на сайте изменился html код.
Стал хитрее...
Помогите пожалуйста поймать кнопку для выдачи ссылки на скачивание...
Вот такой теперь код:
<div class="b-datalist__item b-datalist__item_thumb" data-id="/Small_01_02_2016.zip">
<div class="b-thumb b-thumb_file" data-id="/Small_01_02_2016.zip">
<div class="b-thumb__inner" data-name="link" data-mnemo="b-thumb">
<span class="b-thumb__name" data-name="ctrl">
<div class="js-checkbox b-checkbox js-item-checkbox b-checkbox_in-thumb" data-id="/Small_01_02_2016.zip" data-bem="checkbox">
<div class="b-checkbox__checkmark"></div>
</div>
<span class="b-thumb__spacer-ext">.zip</span>
<div class="b-thumb__name-container">
<span class="b-thumb__name-text">Small_01_02_2016</span>
<span class="b-thumb__name-ext">.zip</span>
</div>
</span><i class="file-icon file-icon_big file-icon_type_ ico_filetype_archive" data-bem="file-icon"></i>
<div class="b-thumb__frame-container" data-name="preview"></div>
<div class="b-thumb__foot" data-name="ctrl"><a class="btn btn_transparent btn_single js-download" href="#" data-name="download" data-bem="btn" data-blockid="btn">
<i class="ico ico_system_download ico_system" data-bem="ico"></i>
<span class="btn__text btn__text_pad">Скачать 220&nbsp;МБ</span></a>
<div class="b-thumb__foot__controls b-thumb__foot__controls_right">
<button class="btn btn_link" data-name="publish" data-bem="btn" data-blockid="btn">
<i class="ico ico_datalist_publish_inactive ico_datalist ico_datalist_publish" data-bem="ico"></i>
</button>
</div>
</div>
</div>
</div>
</div>
Таких блоков на каждый загруженный файл...
Нужно их перебрать и найти тот <div> что совпадает с data-id="/Small_01_02_2016.zip"
И нажать в нем <button class="btn btn_link" data-name="publish" data-bem="btn" data-blockid="btn"> чтобы открыть окно с получением ссылки на файл...

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1348
  • Репутация: 166
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Нужно их перебрать и найти тот <div> что совпадает с data-id="/Small_01_02_2016.zip"
И нажать в нем <button class="btn btn_link" data-name="publish" data-bem="btn" data-blockid="btn"> чтобы открыть окно с получением ссылки на файл...
Код: AutoIt [Выделить]
$oDivs = _IETagNameGetCollection($oIE, "div")
If Not @error Then
    For $oDiv In $oDivs
        If $oDiv.getAttribute("data-id") = "/Small_01_02_2016.zip" Then
            $oButton = _IETagNameGetCollection($oDiv, "button", 0) ; думаю, что там одна нужная кнопка, получаем первую кнопку из элемента...
            _IEAction($oButton, "click") ; кликаем на кнопку
        EndIf
    Next
EndIf

 



Добавлено: Февраль 01, 2016, 19:21:27
А вот так можно нажать на кнопку скачать на странице публичного файла:
Код: AutoIt [Выделить]
$oDiv=_IEGetObjById($oIE, "public-file")
$oButton=_IETagNameGetCollection($oDiv, "button", 0)
_IEAction($oButton, "click")

 

<div class="viewer__information__controls"><div class="viewer__information__control viewer__information__control_btn"><button data-bem="btn" data-blockid="btn" class="btn btn_main btn_last " data-name="action"><span class="btn__text">Скачать</span></button></div></div>
« Последнее редактирование: Февраль 01, 2016, 19:28:12 от alex33 »

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
8 Ответов
3793 Просмотров
Последний ответ Март 11, 2011, 02:33:27
от Kaster
2 Ответов
2206 Просмотров
Последний ответ Июнь 25, 2011, 15:36:16
от Вилка
2 Ответов
2181 Просмотров
Последний ответ Ноябрь 15, 2011, 01:59:47
от agikon
3 Ответов
5213 Просмотров
Последний ответ Январь 01, 2012, 14:55:16
от F4nT0m
3 Ответов
2349 Просмотров
Последний ответ Август 28, 2012, 17:46:52
от AZJIO
14 Ответов
2623 Просмотров
Последний ответ Март 21, 2014, 15:00:50
от alex33
5 Ответов
1201 Просмотров
Последний ответ Январь 20, 2015, 20:36:36
от lesoid
0 Ответов
459 Просмотров
Последний ответ Май 25, 2015, 12:52:14
от kristow13
0 Ответов
343 Просмотров
Последний ответ Март 08, 2016, 18:10:43
от DezmontDeXa
5 Ответов
391 Просмотров
Последний ответ Январь 11, 2017, 13:26:16
от InnI