首页 > 解决方案 > 在一个 for 循环块中多次尝试和除外

问题描述

我正在编写一个具有多个 for 循环(网络抓取)的代码。问题是我不断收到 StaleElement 错误,因此我需要在每一行代码中包含 try 和 except ,但这会在我的代码中产生嵌套 for 循环的问题。

这是主页:https ://www.ine.es/censo/es/seleccion_inframunicipal.jsp

此外,我的 for 循环运行到两页,因为我正在通过多个列表进行选择。例如,我可能弄错了缩进,因为 for 循环没有正确嵌套。

我的代码如下所示:

browser.find_element_by_xpath('//*[@id="cabe"]/table[2]/tbody/tr[1]/td[5]/a/b').click()
browser.find_element_by_xpath('//*[@id="cabe"]/table[2]/tbody/tr[2]/td[17]/a/b').click()

first_op = browser.find_elements_by_xpath('/html/body/form[2]/table/tbody/tr[1]/td[1]/select/option')
second_op = browser.find_elements_by_xpath('/html/body/form[2]/table/tbody/tr[1]/td[2]/table/tbody/tr[1]/td[1]/select/option')
third_op = browser.find_elements_by_xpath('/html/body/form[2]/table/tbody/tr[1]/td[2]/table/tbody/tr[1]/td[1]/select/option')
fourth_op =  browser.find_elements_by_xpath('/html/body/form[2]/table/tbody/tr[1]/td[1]/table/tbody/tr[1]/td/select/option')

for elem in first_op:
    elem.click()
    for ele in second_op:
        ele.click()
        browser.find_element_by_xpath('/html/body/form[2]/table/tbody/tr[1]/td[2]/table/tbody/tr[2]/td/a')
        for el in third_op:
            el.click()
            browser.find_element_by_xpath('/html/body/form[2]/table/tbody/tr[1]/td[2]/table/tbody/tr[3]/td[2]/a[1]/img')
            browser.find_element_by_xpath('/html/body/form[2]/table/tbody/tr[2]/td/input')

标签: pythonselenium

解决方案


推荐阅读