学习Python时自动化出现报错 “selenium python Message: unknown error: Element is not clickable at point” 在网上谷歌了一下,发现是元素定位不到,之前的代码如下:
def add_bug2(self): self.click(self.loc_test) self.click(self.loc_bug) self.click(self.loc_addbug) self.click(self.loc_truck) self.click(self.loc_add_truck) self.sendKeys(self.loc_title,"测试标题BUG") # 切换frame,输入body self.driver.switch_to.frame(0) self.sendKeys(self.loc_input_body,"BUG中文") self.driver.switch_to.default_content() self.click(self.loc_avse)
看到原因有三种原因:(原网址:https://blog.csdn.net/sinat_29673403/article/details/78459648)表示感谢!
1.这个元素在页面不可见范围
解决方法:使用action或JavascriptExecutor使它可点
2.这个元素点击之前刷新了
sleep(2) driver.refresh()
3.这个可被点击的元素被其他元素/蒙层所覆盖了
让代码等待覆盖该元素的其他元素消失后再执行点击操作.
分析了一下,我的错误原因:元素不在当前页面的可见范围
用Action没解决问题,突然想到用 “移动滚条”,直接OK了,代码如下:
1 def add_bug2(self): 2 self.click(self.loc_test) 3 self.click(self.loc_bug) 4 self.click(self.loc_addbug) 5 self.click(self.loc_truck) 6 self.click(self.loc_add_truck) 7 self.sendKeys(self.loc_title,"测试标题BUG") 8 # 切换frame,输入body 9 self.driver.switch_to.frame(0) 10 self.sendKeys(self.loc_input_body,"BUG中文") 11 self.driver.switch_to.default_content() 12 13 # 移动滚动条 14 js = "window.scrollTo(0,document.body.scrollHeight)" 15 driver.execute_script(js) 16 self.click(self.loc_avse)