我的for循环转到最新部分,并且因为该网页需要打开上部的for循环,以便其他for循环可以运行,所以它不起作用。
对于浏览器中的x。find_elements_by_class_name(“节点”):
x.click()
for y in browser.find_elements_by_class_name('dTreeNode'):
y.click()
if len(browser.find_elements_by_class_name('node')) > 0:
browser.find_element_by_class_name('node').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()
browser.execute_script("window.history.go(-1)")
这是图像:
实质上,当页面返回时,它无法找到最后一个循环类并显示错误,因为只有在单击上一个元素后才能找到该元素。但是我该如何在for循环中做到这一点?
HTML文本的图像:
答案 0 :(得分:0)
似乎for y in browser.find_elements_by_class_name('dTreeNode'):
返回一个空元素,或者对错误的元素执行了点击,即该元素未编程为接收点击。
无论哪种情况-
第一件事-请检查您的第一个循环是否在执行代码。
for y in browser.find_elements_by_class_name('dTreeNode'):
y.click()
print('Clicked the element') #just for debugging
然后查看该元素是否返回。
其次-我看到您正在使用绝对xPath。您可以将其转换为相对的xPath吗?请参阅XPath Tutorials
如果您需要有关xPath的帮助,请更新问题和扩展树的HTML代码段。