У меня есть код, который регистрирует меня на панели инструментов моего веб-клиента, нажимает на несколько страниц, и я наконец достигаю страницы, на которой мне нужно загрузить несколько файлов, и каждый из них имеет флажок слева:
Теперь следующий код здесь может скачать только первую ссылку (я знаю почему):
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.
Кроме того, возможно, всего этого можно избежать, потому что я могу просто щелкнуть в верхнем левом поле:
и когда я проверяю, что он показывает:
<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>
Любая помощь приветствуется.