【问题标题】:Selenium hanging on .click() in while loopSelenium 在 while 循环中挂在 .click() 上
【发布时间】:2017-01-20 21:35:22
【问题描述】:

我正在尝试从该网站下载所有电子表格,该网站要求我单击该项目,然后单击下载按钮。电子表格都以相同的 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 驱动程序。

谢谢!

【问题讨论】:

    标签: python selenium selenium-webdriver selenium-chromedriver


    【解决方案1】:

    此评论只是关于您的缩进。缩进 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...
    

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

    【讨论】:

    • 先只添加结果而不是提供教程。
    猜你喜欢
    • 2012-06-04
    • 1970-01-01
    • 2022-01-26
    • 2014-08-23
    • 2021-03-23
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    相关资源
    最近更新 更多