首先 我想点击出日期控件,但是用了find、js定位全部都获取不到元素。
网上说js好用,我试用了无数次js,包括上一层级等等,无效。
用一下午的时间,发现是这个控件是动态的,框架的id一直在变。用css也在变。网上说要用xpath定位。
发现xpath中定位ID也在变,最后发现full xpath没有id值,选用这个代码
item=driver.find_element_by_xpath('/html/body/div[2]/div[1]/div/div/i[1]')
driver.execute_script('arguments[0].click();',item)
这里的arguments本来是没有的,因为按照之前的定位xpath写法,显示元素无法交互,百度根据这个地址上的方法修改,好用了!!!!!
https://laowangblog.com/selenium-element-click-intercepted.html
最后的代码:
# 开始时间赋值
# item=driver.find_element_by_xpath('/html/body/div[2]/div[1]/div/div/input[1]')
# driver.execute_script('arguments[0].removeAttribute("readonly")',item)
# item.clear()
# item.send_keys('2021-03-14')
# #结束时间赋值
# item=driver.find_element_by_xpath('/html/body/div[2]/div[1]/div/div/input[2]')
# driver.execute_script('arguments[0].removeAttribute("readonly")',item)
# item.clear()
# item.send_keys('2021-03-19')
# item.send_keys(Keys.ENTER)#加上回车键
# time.sleep(0.5)