Python中的Selenium:在Onclick属性更改后中断While循环

2024-09-26 22:50:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一种方法来停止循环,该循环继续单击“下一页”按钮,直到它在基于web的系统上不再可单击,这只由Onclick值的更改表示:

onclick="javascript:__doPostBack('m$main$RadGrid1$ctl00$ctl03$ctl02$ctl20','')"

^{pr2}$

我的问题是,我目前没有办法让Selenium认识到这种变化已经发生。在

到目前为止,我已经能够写下这样的东西:

while (driver.find_element_by_class_name('rgPageNext').is_enabled()) is True:
    time.sleep(1)
    elem = driver.find_element_by_class_name('rgPageNext').click()

但是,该按钮始终处于启用状态,即使该按钮在到达最后一页后没有执行任何操作,这会导致Selenium不断尝试单击该按钮。在

检查按钮元素的完整信息如下:

<input type="button" name="m$main$RadGrid1$ctl00$ctl03$ctl02$ctl20" value=" " onclick="javascript:__doPostBack('m$main$RadGrid1$ctl00$ctl03$ctl02$ctl20','')" title="Next Page" class="rgPageNext">

<input type="button" name="m$main$RadGrid1$ctl00$ctl03$ctl02$ctl20" value=" " onclick="return false;__doPostBack('m$main$RadGrid1$ctl00$ctl03$ctl02$ctl20','')" title="Next Page" class="rgPageNext">

Tags: namemaindriverseleniumjavascript按钮classonclick
1条回答
网友
1楼 · 发布于 2024-09-26 22:50:13

您可以尝试检查'onclick'属性,它的字符串是否以return false;开始,如果是这样,您应该在此时结束循环。为此,请将while循环条件更改为-

while not driver.find_element_by_class_name('rgPageNext').get_attribute('onclick').startsw‌​ith("return false;"):

相关问题 更多 >

    热门问题