Selenium Selenium Canvas 画布操作

Soner · 2019年08月12日 · 最后由 Soner 回复于 2019年08月12日 · 2809 次阅读

现在有一个场景是需要进入到 Canvas 画布中 进行单击操作,现在使用过如下方法

# 进入画布  650 270
canvas = driver.find_element_by_xpath("//canvas[@id='#canvas']")
actions.move_to_element(canvas).move_by_offset(600, 270).click().release().perform()

报错如下

selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document

提示元素未附加到页面文档,请问,这个问题要如何解决

共收到 3 条回复 时间 点赞

stale element reference:陈旧的元素引用
原因一般是因为页面刷新,导致元素引用不可用,需要重新获取一次

烟雨成都 回复

不能刷新页面,因为一刷选择的工具就没有了,相当于重置到原来的界面。还需要在此操作一遍选择工具,在点击

烟雨成都 回复

用了一个笨拙的方法改写了下,直接使用 ActionChains 去调用,ActionChains(driver).move_to_element(canvas).move_by_offset(85,27).pause(2).click().perform()
而不是将它先赋值在使用,不然就会出现上面的错误

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册