两个for循环-如何运行

时间:2020-03-30 09:44:33

标签: python selenium

我正在Python(硒)上运行它:

此后,我可以成功运行此迭代一次,它无法识别外部循环并显示错误。

elements = browser.find_elements_by_xpath('//*[@id="dtree0"]/div/a')
names=[]
for elem in elements:
    names.append(elem.text)
    print(names)

 for id in range (2, 170):
        for i in range(0, len(elements)):
            elements = browser.find_elements_by_xpath ('//*[@id="dtree0"]/div/a')
            elem = elements[i]
    #     #         # only click the elements in the names list (this level)
            if elem.text in names:
                try:
                    elem.click()
                except WebDriverException:
                     pass  # ignore if elem is not clickable
            # browser.find_elements_by_id("stree2").click()
            my_id = "stree{}".format(id)
            browser.find_element_by_id(my_id).click()
            browser.find_element_by_xpath (
                    '/html/body/center[2]/form/table[1]/tbody/tr/td[3]/table/tbody/tr[5]/td[1]/a[1]/img').click ()
            browser.find_element_by_xpath ('/html/body/center[2]/form/table[2]/tbody/tr/td[4]/input').click ()
            browser.find_element_by_xpath ('/html/body/center/form/table[2]/tbody/tr/td[5]/a').click ()
            sleep (5)
            browser.find_element_by_xpath ('//*[@id="personas"]/b').click ()
            browser.find_element_by_xpath('//*[@id="menu_personas"]/a[2]').click()

如何修改它,以便它在每次迭代时都运行这两个for循环。

错误如下:selenium.common.exceptions.ElementNotInteractableException:消息:元素不可交互

我认为这是因为外部for循环无法正常运行,因此程序无法理解“ Stree”部分。

该网页如下所示:enter image description here

文件夹部分是“元素”,“ id”部分是文件。我想打开文件夹并下载所有文件。

1 个答案:

答案 0 :(得分:0)

获得元素的长度,然后通过在循环内分配元素来更改元素。这是因为您重复使用了元素。应该是2个不同的变量。

for id in range (2, 170):
    for i in range(0, len(elements)):
        elements_2 = browser.find_elements_by_xpath ('//*[@id="dtree0"]/div/a')
        elem = elements_2[i]

如果第二个循环在第一个循环内。您的缩进不清楚。