这里写目录标题
一般
文本框:input
- sendkeys();//输入内容
- clear();//清除内容
- getAttribute 获取元素属性
单选框 radio 复选框 checkbox
- click
- clear (清除选中状态)
- isSelected 查看是否被选中
按钮 button / 超链接 a
- click
- isEnabled 查看是否可以操作
复杂
组合键操作
一般使用click方法,如果是chrome浏览器,点击超链接 同时按ctrl会打开新标签,shift打开新的窗口。
Actions a = new Actions(driver);//点击按下
a.keyDown(Keys.CONTROL).perform();
driver.findElement(By.xpath("")).click();
a.keyUp(Keys.CONTROL).perform();//点解结束
组合鼠标操作
- 鼠标左键点击 (可以来打开二级菜单)
Actions action = new Actions(driver);action.click();// 鼠标左键在当前停留的位置做单击操作
action.click(element)// 鼠标左键点击指定的元素
action.contextclick(element)//;鼠标右键点击指定元素
action.doubleClick(element);//鼠标双击元素
- 鼠标移动操作 (可以来打开二级菜单)
action.moveToElement(element);// 将鼠标移到 element 元素中点
action.moveToElement(element,xOffset,yOffset)
//表示以当前element相对移动的位移量
- 鼠标长按操作
action.clickAndHold();// 鼠标悬停在当前位置,既点击并且不释放
action.clickAndHold(Element);// 鼠标悬停在 Element 元素的位置
- 鼠标释放操
action.release();// 释放鼠标
- 鼠标拖拽动作
action.dragAndDrop(source,target); //将source元素拖拽到target
action.dragAndDrop(source,xOffset,yOffset);
//可以由以上简单操作组合
action.clickAndHold(source).moveToElement(target).perform(); action.release();
//或者
action.clickAndHold(source).moveToElement(target).release().build().perform();
文件上传按钮
input 类型的 ,一般定位元素 ,然后sendkeys(文件的绝对路径)。
复杂类型的
selenium + python 文件上传
alert对话框处理
有三种 alert prompt confirm
- alert confirm相同
1.Alert alert = driver.switchTo().alert();
alert.accept();
alert.dismiss();
alert.getText(); //获取alert的内容
- prompt (有提示内容和输入框)
获取alert相同
通过sendKeys()输入内容
select菜单,选择项
获取
WebElement element = driver.finElement( select 的 Xpath);
Select select = new Select(element);
选择
selectByIndex(index);
selectByVisibleText(String text); 通过匹配到的字符
selectByValue(String value);通过匹配 标签的vlaue属性
Window/Tag切换
driver.getWindowHandle();返会字符串,获取当前窗口的句柄
driver.getWindowHandles();返回Set<String> 获取所有的窗口
driver.switchTo().window(窗口的String); 来跳转窗口(无论是新的标签还是新的浏览器窗口都可以通过此方法跳转)。
注意窗口间切换,要关闭窗口时,不能使用 qiut(quit driver就释放了,不能使用driver,close只是关闭当前window 或者 标签 还可以使用driver,当然close最后一个窗口或者标签时就会关闭浏览器 此时driver也不会有效)
滚动定位到特定元素位置
JavascriptExecutor scroll = (JavascriptExecutor) driver;
scroll.executeScript("arguments[0].scrollIntoView();", 指定元素);
Navigation
可以通过driver.get(新的URL)进行网址跳转,也可以通过Navigation的to(新的url)实现。
Navigation n= driver.navigate();
n.back();
delay(2000);
n.refresh();
delay(2000);
n.forward();
delay(2000);
n.to("http://www.icourse163.org/home.htm?userId=1400999509#/home/course");
delay(2000);
n.to("https://www.baidu.com/s?tn=02049043_8_pg&ch=7&ie=utf-8&wd=selenium%20%E6%93%8D%E4%BD%9C%E8%BF%9B%E5%BA%A6%E6%9D%A1");
iframe
1.有id,并且唯一,直接写id
driver.switchTo().frame("iframe_id");、、//通过iframe的id或者name属性进行定位
2.有name,并且唯一,直接写name
driver.switchTo().frame("iframe_name");
3.无id,无name,先定位iframe元素
driver.swtichTo().frame(Webelement);//通过(目标iframe)webelement元素进行定位
driver.switchTo().frame(iframe_index);//没有以上属性也可以通过 通过下标(整个html文档中第几个iframe)定位到iframe
driver.switchTo().defaultContent();//切回主文档
driver.switch_to.parent_frame();//从当前iframe切回父iframe 如果当前已是主文档,则无效果
参考: