Python нажмите на «n» количество неизвестных ссылок или флажки, чтобы загрузить файлы - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть код, который регистрирует меня на панели инструментов моего веб-клиента, нажимает на несколько страниц, и я наконец достигаю страницы, на которой мне нужно загрузить несколько файлов, и каждый из них имеет флажок слева:

dashboard

Теперь следующий код здесь может скачать только первую ссылку (я знаю почему):

from webbot import Browser

from selenium import webdriver


web= Browser()
web.go_to('https://files.cascade365.com/webclient/Login.xhtml') 

web.type('my user' , into='User Name' , id = 'j_id_10:username')
web.click('NEXT' , tag='span')
web.type('my password' , into='Password' , id='j_id_10:value') # specific selection
web.click('NEXT' , tag='span')
web.click('Login')
web.go_to('https://files.cascade365.com/webclient/WebClient.xhtml')
web.click('Media & Correspondence')
web.click('1049562018')
web.click('ui-chkbox-icon ui-icon ui-c ui-icon-check', id = 'fileListForm:j_id_4f:0:j_id_4q')

Итак, я вижу, что на странице для каждой ссылки ее идентификатор запускается и изменяется динамически:

fileListForm:j_id_4f:0:j_id_4q
fileListForm:j_id_4f:1:j_id_4q
fileListForm:j_id_4f:2:j_id_4q
fileListForm:j_id_4f:3:j_id_4q
...
fileListForm:j_id_4f:47:j_id_4q

когда я проверяю ссылки, вот что он показывает:

<a id="fileListForm:j_id_4f:0:j_id_4q" href="#" class="ui-commandlink ui-widget 

TreeNode ItemName" onclick="PrimeFaces.addSubmitParam('fileListForm',

{'fileListForm:j_id_4f:0:j_id_4q':'fileListForm:j_id_4f:0:j_id_4q'}).submit('fil

eListForm');return false;PrimeFaces.onPost();"><img 

src="/images/filetypes/archive/zip_icon32.png" alt="File" style="border: 0;" 

class="SecureFolderIcon">20181031.document_copies.zip</a>

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

используя цикл for, где n = 0, затем увеличивая n ++

так fileListForm: j_id_4f: + n +: j_id_4q, пока это не будет сделано?

Заранее прошу прощения за мое невежество, поскольку я впервые использую python.

Кроме того, возможно, всего этого можно избежать, потому что я могу просто щелкнуть в верхнем левом поле:

select all

и когда я проверяю, что он показывает:

<th id="fileListForm:j_id_4f:j_id_4h" class="ui-state-default ui-selection-

column rowCheckbox ActionIcons" role="columnheader" aria-label="" scope="col">

<span class="ui-column-title"></span><div class="ui-chkbox ui-chkbox-all ui-

widget"><div class="ui-helper-hidden-accessible"><input type="checkbox" 

name="fileListForm:j_id_4f_checkbox" aria-label="Select All" aria-

checked="true"></div><div class="ui-chkbox-box ui-widget ui-corner-all ui-state-

default ui-state-active"><span class="ui-chkbox-icon ui-icon ui-c ui-icon-

check"></span></div></div></th>

Любая помощь приветствуется.

...