Selenium 等待页面内的脚本执行完

最近几天使用 Selenium 做浏览器自动化时,遇到了一个由脚本等待引起的问题。这个页面展示了一个类似于“请阅读条款”的内容,而且会等待一段时间点击确认按钮才会跳转到下一个页面,如果等待的时间不够,点击确认按钮后会再次显示这个页面。这里不提这个页面功能的设计是否合理,针对该页面的情况,我们该如何处理?在Selenium中打开该页面以后,代码应该等待一段时间,然后再去点击按钮。该“等待”不是查找页面元素时的超时等待 (WebDriverWait),而是在代码中sleep一段时间。

import time

time.sleep(60)
button_element = WebDriverWait(driver, 20).until(lambda the_driver: the_driver.find_element((By.NAME, 'button-name')))

代码很简单,正确处理这个问题的关键在于要充分理解页面的功能。