最近在做一个自动化的上传项目,碰到了Selenium需要点击canvas上的元素关闭网页蒙层的问题? 想了好久一直没有解决,在网上搜索和实践,终于找到解决方法。
1.定位canvas
这个比较简单,有很多方法,比如 find_element_by_id()
2.点击canvas中的元素,关闭蒙层
这里需要用到 ActionChains 这个类,它是继承selenium.webdriver这个父类,
使用方法也比较简单,主要是操作鼠标,移动到那个关闭按钮的坐标上
ActionChains(driver).move_to_element_with_offset(canvas,590,190).click().perform()
这里做下简单的解释,driver是浏览器的实例,move_to_element_with_offset() 通过相对定位找到元素,canvas是这个canvas画布,click()是鼠标的单击操作,perform()是执行操作,590是元素到左边边框的距离,190是元素到顶部边框的距离。
这样一行命令就完美解决了问题,关闭了网页上的canvas蒙层!
请问,坐标怎么确定呢?
什么坐标
有driver.find_element_by_id() 等类似的方法