问题一:页面刷新后,无法获取元素
StaleElementReferenceException异常,通常是因为元素页面刷新之后(如果JavaScript把网页给刷新了),元素的属性是没变,但是Element已经过时,没有和当前页面进行绑定,无法重新获取元素导致
报错信息:
selenium.common.exceptions.StaleElementReferenceException:
Message: stale element reference: element is not attached to the page document
(Session info: chrome=76.0.3809.132)
(Driver info: chromedriver=2.36.540470 (e522d04694c7ebea4ba8821272dbef4f9b818c91),platform=Windows NT 6.1.7601 SP1 x86_64)
解决方法:
需要在页面刷新之后,重新获取一下元素,就可以消除此种错误。即消除 StaleElementReferenceException 异常
暂未找到好的方法,待更新
问题二、一个html里有多个frame,无法定位元素
当一个html页面中,有多个frame框架
例如:商品管理下有分类:商品列表、添加商品、等。每个分类是通过frame来写的页面
检查页面是否含有frame框架方法:
把鼠标放在根节点的标签上,检查页面是否全部高亮,如没有全部高亮,则存在frame
解决方法:
从html根节点,切换到frame里,再进行操作。
代码
driver.switch_to.frame('frame的定位/name定位')