硒挂在.click()在while循环

时间:2017-01-20 21:35:23

标签: python selenium selenium-webdriver selenium-chromedriver

我正在尝试从此网站下载所有电子表格,该网站要求我点击该项目,然后单击下载按钮。电子表格全部以相同的ID保存,每个电子表格后面的数字越来越多。我试图使用while循环来解决这个问题,但我不确定这是否是最好的方法。

i = 0
    while i < 13:
        device = 'ctl00_LeftBarContent_lvLeftPanel_lbDevices_i' + str(i)
        deviceElement = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(device))
        deviceElement.click()
        time.sleep(2)
        downloadXpath = "ctl00_LeftBarContent_lvLeftPanel_btnDownload"
        WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(downloadXpath)).click()
        time.sleep(2)
        i += 1

目前,代码运行到单击下载按钮,文件下载然后它似乎挂在按钮上,最终超时。我正在使用chrome驱动程序。

谢谢!

1 个答案:

答案 0 :(得分:0)

此评论仅针对您的缩进。要么缩进i,要么在i之后取消所有代码。

错误示例'Hello World':

i = 0
    while i < 13:
        print 'hello world'
        i+=1
'error unexpected indent'

更正示例'Hello World':

i = 0
while i < 13:
    print 'hello world'
    i+=1

'Hello world'
'Hello world'
'Hello world'
'Hello world'
etc...

因此,对于您的问题,请正确缩进问题并重试。如果您仍然遇到问题,请在每个命令之前和之后输入一些打印语句,以查看您遇到的问题。只是一个猜测,但您可能必须切换帧,然后在第一次下载完成后关闭帧。