2016-03-02 120 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()