1、为什么元素定位不到?——考虑以下情况:
(1)检查定位是否正确(control里面ctr+F)——xpath
(2)界面渲染是否还没出来,需要加上等待(显示等待webdriverwait)
(3)是否切换窗口或iframe(单独完整的html,只是嵌套在里面,所以要切换)
(4)日历插件正常定位:iframe+Actionchain鼠标悬浮(鼠标悬浮在上面后才能定位到元素)
2、浏览器事件和HTML事件:
(1)浏览器事件:(不可以通过HTML定位到)
alert:
confirm:
Prompt:
driver.swich_to.alert.accept() 确定
driver.swich_to.alert.dismiss() 取消
driver.swich_to.alert.send_keys() 发送内容
Alert=driver.swich_to.alert
Alert.text() 获取alert内容
(2)html事件:也存在html的内部弹窗,即可以通过HTML进行定位
3、切换iframe
(有id和name先用,否则定位元素,传给switch_to.frame())
driver.switch_to.frame('frame的name')——多层frame的话可以多次切入
driver.switch_to.parent_frame() 返回上一级frame,当有上一级的时候会返回上一级,没有的话不会报错,会返回主层级
driver.switch_to.default_content() 返回主层级,退出所有的frame
driver.title 无论切换到哪个frame,都是主窗口/页面的title
driver.page_source 获取到的是当前frame的HTML的内容
4、切换窗口:
获取窗口句柄:
Handles = driver.window_handles
切换窗口:
driver.switch_to.window(Handles[i])
返回:
driver.back()