美文网首页
python selenium 解决页面刷新后元素找不到问题

python selenium 解决页面刷新后元素找不到问题

作者: 戒灵 | 来源:发表于2019-06-13 16:20 被阅读0次

1,问题: 当我们第一遍找元素是找到了,而你循环后页面已经新刷新,所以不能用第一遍找出的元素了
即:页面刷新后元素的属性是没变,但是element却变了,所有之前定位的元素element都过期了
2,解决方案

                    1.针对页面刷新后,之前的元素失效问题,在for循环体里面可以重新定位一次,覆盖掉之前旧的就行了。
                    2.第一次获取全部元素后,通过len函数获取总个数
                    3.for循环的时候不要循环定位元素的list对象,换成range函数去循环

3,实例:

错误:

        up_list = driver.find_elements_by_xpath("//ul/li/form[contains(@class,'up')]")
        for up in up_list:
            qa_id = up.get_attribute("action")
            qa_id = re.search(r"question/(.*)", qa_id)
            qa_id = qa_id.group(1)
            if qa_id in qa_id_list:
                print(qa_id)
                up.find_element_by_xpath("./span//input").click()
                time.sleep(2)

正确:

        up_list = driver.find_elements_by_xpath("//ul/li/form[contains(@class,'up')]")
        for up in range(len(up_list)):
            qa_id = up_list[up].get_attribute("action")
            qa_id = re.search(r"question/(.*)", qa_id)
            qa_id = qa_id.group(1)
            if qa_id in qa_id_list:
                print(qa_id)
                up_list[up].find_element_by_xpath("./span//input").click()
                time.sleep(2)
                up_list = driver.find_elements_by_xpath("//ul/li/form[contains(@class,'up')]")

相关文章

网友评论

      本文标题:python selenium 解决页面刷新后元素找不到问题

      本文链接:https://www.haomeiwen.com/subject/tfvsfctx.html