2016-03-02 115 views
1

目前我正在使用selenium webdriver來自動化每天發生的報告拉動。Python Selenium webdriver loop with addition

基本上,我希望爲每個報告重複這段代碼大約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

作爲一個旁註,我建議儘量避免使用這些微軟生成的ID看,因爲他們可以在版本之間變化 –

回答

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

@Yogwha​​tup報告中的報告:'循環只是你所描述的一個示例實現「我希望爲每個報告重複這個代碼大約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()