for循环selenium python运行最后一个循环

时间:2020-03-14 07:04:58

标签: python selenium

我的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)")

这是图像:

enter image description here

实质上,当页面返回时,它无法找到最后一个循环类并显示错误,因为只有在单击上一个元素后才能找到该元素。但是我该如何在for循环中做到这一点?

HTML文本的图像:

enter image description here

1 个答案:

答案 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代码段。

相关问题