Selenium定位元素定位不上,所有的定位方法都尝试了。

问题遇到的现象和发生背景

<dl>
            <dd status="-1">全部:<span id="allCount">27587</span></dd>
            <dd class="active" status="1">待批阅:<span id="unCheckCount">141</span></dd>
            <dd status="2">已完成:<span id="finishCount">25830</span></dd>
            <dd status="0">未提交:<span id="unSubmitCount">953</span></dd>
            <dd status="3">低于60分:<span id="reDoCount">663</span></dd>
        </dl>

进入页面是初始状态为

img

想求换到“已完成”但是总是定位不上

问题相关代码,请勿粘贴截图

    button9 = brower.find_element(By.XPATH, '/html/body/div[2]/div[2]/dl[2]/dd[3]')  # 点击已完成作业按钮
    button9.click()
运行结果及报错内容

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[2]/div[2]/dl[2]/dd[3]"}

我的解答思路和尝试过的方法
我想要达到的结果

1、可以看一下元素是不是在iframe下,如果有就需要切换到当前的iframe下才能定位。
2、可以尝试直接用其他方法定位一下,如//dd[text()="已完成:"]

主要也没有你网页,我也说不好是不是别的问题

看一下是不是在框架内,或者是需要动态加载需要下拉啥的,为啥不用id定位,实在不行可以考虑用js定位吧

或者你用xpath呢,brower.find_element_by_xpath('//dd[contains(text(),"已完成:")]').click()