我正在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”部分。
文件夹部分是“元素”,“ id”部分是文件。我想打开文件夹并下载所有文件。
答案 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]
如果第二个循环在第一个循环内。您的缩进不清楚。