2016-03-02 2 views
1

В настоящее время я использую веб-редактор selenium для автоматизации потока сообщений, который происходит ежедневно.Python Selenium webdriver loop с добавлением

В принципе, я хочу повторить этот код примерно 30 раз для каждого отчета. Кроме того, мне нужно «нажимать» клавишу «вниз» дополнительное время при каждом запуске кода. Надеюсь, я дам вам ребята достаточно информации. Если нет, просто спросите - как всегда ваша помощь ВОЗМОЖНО высоко ценится.

ProgramManagement= browser.find_element_by_partial_link_text('Program Management').send_keys(Keys.ARROW_DOWN, Keys.ENTER) 

browser.find_element_by_id("ctl00_PlaceHolderMain_ReportViewer1_HtmlOutputReportResults2_CSVButton_Content").click() 
+0

Его трудно помочь, если мы не знаем, в чем проблема. – Guy

+0

Я не уверен, как использовать цикл для запуска этого бита кода ~ 30 раз. Кроме того, я не уверен, как увеличить количество нажатий клавиш на каждом цикле. – Yogwhatup

+0

Как побочный элемент, я рекомендую избегать использования тех генерируемых идентификаторами Microsoft, которые видят, как они могут меняться между версиями. –

ответ

1

количество "ключа вниз" s может быть увеличен путем умножения:

for report in reports: 
    for x in range(0, 30): 
     browser.find_element_by_partial_link_text('Program Management').send_keys(Keys.ARROW_DOWN * x, Keys.ENTER) 
     browser.find_element_by_id("ctl00_PlaceHolderMain_ReportViewer1_HtmlOutputReportResults2_CSVButton_Content").click() 

Примечание соответствующая Keys.ARROW_DOWN * x часть.

+0

Ок - это похоже на то, что мне нужно, однако я получаю сообщение об ошибке: undefined name: 'Reports' Опять же, я но я не уверен, что это означает – Yogwhatup

+0

@Yogwhatup 'для отчета в отчетах:' loop - это всего лишь пример реализации того, что вы описываете. «Я ищу, чтобы повторить этот код примерно 30 раз для каждого отчета» .. мы не знаю, что вы имели в виду под этим и импровизировали. – alecxe

+0

Работает! Спасибо за помощь. – Yogwhatup

0

Если я вас правильно понял вы хотите что-то вроде

for report in reports: 
    for x in range(0, 30): 
     ProgramManagement= browser.find_element_by_partial_link_text('Program Management').send_keys(Keys.ARROW_DOWN, Keys.ENTER) 
     browser.find_element_by_id("ctl00_PlaceHolderMain_ReportViewer1_HtmlOutputReportResults2_CSVButton_Content").click() 
Смежные вопросы