在java中,frame,window,alert的切换都是driver.switchTo().xx
在python中,frame,window的切换都是driver.switch_to.xx;
alert切换driver.switch_to_alert().
(黑色字体为java语法;红色字体为python语法)
目录
frame:
对于未嵌套的iframe:
driver.switch_to.frame()
1.driver.switchTo().frame() 根据frame的id/name或index切换至该frame内
driver.switchTo().frame("frame的id")
driver.switchTo().frame("frame_index"):frame无id属性的时候,根据索引来处理,
索引从0开始计算,driver.switchTo().frame(0)
driver.switch_to.default_content()
2.driver.switchTo().defaultContent() 切换至默认层(默认最外层主文档)
driver.switch_to.parent_frame()
3.driver.switchTo().parentFrame() 切换至父级frame(上级frame)
对于嵌套的iframe:
先进入父iframe节点,再进入子iframe节点,然后可以对子frame内的对象进行操作
driver.switch_to.frame()
driver.switchTo().frame("父frame节点")
driver.switchTo().frame("子frame节点")
driver.switchTo().frame('frame1.0.frame3'):
点分法切到 “frame1” 下的 “第一个frame” 下的 “frame3” 中。
多窗口处理:
driver.maximize_window()
0.driver.manage().window().maximize();窗口最大化
driver.current_window_handle
1.driver.getWindowHandle();获取当前窗口句柄
driver.window_handles
2.driver.getWindowHandles();获取所有窗口句柄
driver.switch_to.window(要切换的窗口的句柄)
3.driver.switchTo().window(窗口句柄);切换至待操作窗口
弹窗alert:
driver.switch_to_alert().accept()
driver.switchTo().alert().accept();切换至弹窗并接受
driver.switch_to_alert().dismisss()
driver.switchTo().alert().dismisss();切换至弹窗并忽视
driver.switch_to_alert().text()
driver.switchTo().alert().getText();切换至弹窗获取弹窗文本
driver.switch_to_alert().send_keys()
driver.switchTo().alert().sendKeys();切换至弹窗输入文本
上传文件
1.先识别上传按钮
2.点击上传按钮
3.将文件路径作为参数上传
driver.findElement(By.xpath('xxx')).sendKeys("文件路径")