这里写目录标题

  • 一般
  • 文本框:input
  • 单选框 radio 复选框 checkbox
  • 按钮 button / 超链接 a
  • 复杂
  • 组合键操作
  • 组合鼠标操作
  • 文件上传按钮
  • alert对话框处理
  • select菜单,选择项
  • Window/Tag切换
  • 滚动定位到特定元素位置
  • Navigation
  • iframe


一般

文本框: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();//点解结束

组合鼠标操作

  1. 鼠标左键点击 (可以来打开二级菜单)
Actions action = new Actions(driver);action.click();// 鼠标左键在当前停留的位置做单击操作  
action.click(element)// 鼠标左键点击指定的元素 
action.contextclick(element)//;鼠标右键点击指定元素
action.doubleClick(element);//鼠标双击元素
  1. 鼠标移动操作 (可以来打开二级菜单)
action.moveToElement(element);// 将鼠标移到 element 元素中点 
 action.moveToElement(element,xOffset,yOffset) 
 //表示以当前element相对移动的位移量
  1. 鼠标长按操作
action.clickAndHold();// 鼠标悬停在当前位置,既点击并且不释放  
action.clickAndHold(Element);// 鼠标悬停在 Element 元素的位置
  1. 鼠标释放操
action.release();// 释放鼠标
  1. 鼠标拖拽动作
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 如果当前已是主文档,则无效果

参考:

  1. selenium切换到iframe
  2. Selenium WebDriver 中鼠标事件