1. 报不可见异常Element is not currently visible and so may not be interacted with(单选题的答案设置)
就是元素的样式或父级及以上元素含有不可显示属性,以致在有些浏览器中(FirefoxDriver)不能操作,但在正常的浏览器中它是可见和可用的。可通过元素对象的方法isDisplayed()检测元素是否可显示的
在定位的时候前端里看到了是隐藏的样子,但是没意识到,报错后,去掉定位里最后一段隐藏的那个标签,就可以操作了
2. 日期控件的赋值(课程开始学习时间)
日期弹窗控件是iframe,但是通过switch_to.frame后操作总是不成功,所以开发给了另一个思路,写js直接赋值,还能避免操作日期控件会出现的问题。查询百度里给出的解决办法都是去掉input的readonly属性,看了看前端里readonly属性赋值是空,不是true,所以我试了试,不用去掉readonly直接赋值也OK,但是一获得焦点,日期控件就弹出,赋值后失去焦点就会出现undefined,看了看前端input的onfocus属性有值,所以去掉了这个属性再赋值,没有再弹出日期控件,OK成功赋值
1 #建议学习时间 2 timejs = "var setDate=document.getElementById("StudyTime");setDate.removeAttribute('onfocus');" 3 driver.execute_script(timejs) 4 driver.find_element_by_id("StudyTime").send_keys("2016-08-22")