转自:http://blog.sina.com.cn/s/blog_6966650401012a7q.html

一、输入框(text field or textarea)

//找到输入框元素:
WebElement element = driver.findElement(By.id("passwd-id"));
//将输入框清空:
element.clear();
//在输入框中输入内容:
element.sendKeys(“test”);
//获取输入框的文本内容:
element.getText();

二、下拉选择框(Select)

//找到下拉选择框的元素:
Select select = new Select(driver.findElement(By.id("select")));//选择对应的选择项:
select.selectByVisibleText(“mediaAgencyA”);
或
select.selectByValue(“MA_ID_001”);//不选择对应的选择项:
select.deselectAll();
select.deselectByValue(“MA_ID_001”);
select.deselectByVisibleText(“mediaAgencyA”);
或者获取选择项的值:
select.getAllSelectedOptions();
select.getFirstSelectedOption();

对下拉框进行操作时首先要定位到这个下拉框,new 一个Selcet对象,然后对它进行操作

例如:
以http://passport.51.com/reg2.5p这个页面为例。这个页面中有4个下拉框,下面演示4种选中下拉框选项的方法。

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;public class SelectsStudy {public static void main(String[] args) {System.setProperty("webdriver.firefox.bin","D:\\Program Files\\Mozilla Firefox\\firefox.exe"); WebDriver dr = new FirefoxDriver();dr.get("http://passport.51.com/reg2.5p");//通过下拉列表中选项的索引选中第二项,即2011年Select selectAge = new Select(dr.findElement(By.id("User_Age")));selectAge.selectByIndex(2);//Select.selectByIndex//通过下拉列表中的选项的value属性选中"上海"这一项Select selectShen = new Select(dr.findElement(By.id("User_Shen")));selectShen.selectByValue("上海");//Select.selectByValue//通过下拉列表中选项的可见文本选中"浦东"这一项Select selectTown = new Select(dr.findElement(By.id("User_Town")));selectTown.selectByVisibleText("浦东");Select.selectByVisibleText//这里只是想遍历一下下拉列表所有选项,用click进行选中选项Select selectCity = new Select(dr.findElement(By.id("User_City")));for(WebElement e : selectCity.getOptions())//Select.getOptions()
            e.click();}
}

三、单选项(Radio Button)

//找到单选框元素:
WebElement bookMode =driver.findElement(By.id("BookMode"));
//选择某个单选项:
bookMode.click();
//清空某个单选项:
bookMode.clear();
//判断某个单选项是否已经被选择:
bookMode.isSelected();

四、多选项(checkbox)

//多选项的操作和单选的差不多:
WebElement checkbox =driver.findElement(By.id("myCheckbox."));
checkbox.click();
checkbox.clear();
checkbox.isSelected();
checkbox.isEnabled();

五、按钮(button)

//找到按钮元素:
WebElement saveButton = driver.findElement(By.id("save"));
//点击按钮:
saveButton.click();
//判断按钮是否enable:
saveButton.isEnabled ();

六、左右选择框
也就是左边是可供选择项,选择后移动到右边的框中,反之亦然。
例如:

Select lang = new Select(driver.findElement(By.id("languages")));
lang.selectByVisibleText(“English”);
WebElement addLanguage =driver.findElement(By.id("addButton"));
addLanguage.click();

七、弹出对话框(Popup dialogs)

Alert alert = driver.switchTo().alert();
alert.accept();
alert.dismiss();
alert.getText();

八、表单(Form)
Form中的元素的操作和其它的元素操作一样,对元素操作完成后对表单的提交可以:

WebElement approve = driver.findElement(By.id("approve"));
approve.click();
或
approve.submit();//只适合于表单的提交

九、上传文件 (Upload File)
上传文件的元素操作:

WebElement adFileUpload = driver.findElement(By.id("WAP-upload"));
String filePath = "C:\test\\uploadfile\\media_ads\\test.jpg";
adFileUpload.sendKeys(filePath);

十、拖拉(Drag andDrop)

WebElement element =driver.findElement(By.name("source"));
WebElement target = driver.findElement(By.name("target"));
(new Actions(driver)).dragAndDrop(element, target).perform();

例如:下面这个页面是一个演示拖放元素的页面,你可以把左右页面中的条目拖放到右边的div框中。

http://koyoz.com/demo/html/drag-drop/drag-drop.html

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;public class DragAndDrop {public static void main(String[] args) {System.setProperty("webdriver.firefox.bin","D:\\Program Files\\Mozilla Firefox\\firefox.exe"); WebDriver dr = new FirefoxDriver();dr.get("http://koyoz.com/demo/html/drag-drop/drag-drop.html");//首先new出要拖入的页面元素对象和目标对象,然后进行拖入。WebElement  element = dr.findElement(By.id("item1"));WebElement  target = dr.findElement(By.id("drop"));(new Actions(dr)).dragAndDrop(element, target).perform();//利用循环把其它item也拖入String id="item" ;for(int i=2;i<=6;i++){String item = id+i;(new Actions(dr)).dragAndDrop(dr.findElement(By.id(item)), target).perform();}}
}

代码很简单,需要注意的是(new Actions(dr)).dragAndDrop(element, target).perform();这句话中,dragAndDrop(element, target)这个方法是定义了“点击element元素对象,然后保持住,直到拖到目标元素对象里面才松开”这一系列动作的Actions,如果你不调用perform()方法,这个Actions是不会执行的。

十一、导航 (Navigationand History)

//打开一个新的页面:
driver.navigate().to("http://www.example.com");
//通过历史导航返回原页面:
driver.navigate().forward();
driver.navigate().back();

十二、获取页面CSS属性
1.获取文字颜色
dr.findElement(By.id("tooltip")).getCssValue("color")
2.获取文字字号
dr.findElement(By.tagName("h3")).getCssValue("font")

转载于:https://www.cnblogs.com/baby0814/p/4536309.html

Selenium操作页面元素相关推荐

  1. selenium拖动元素java_【自动化测试】Java+Selenium操作页面元素(合集)

    本文基于Java语言,依托于Eclipse工具,使用Selenium框架,主要介绍在Selenium中,如何操作Web页面中的各种元素. Eclipse 搭建 1.1.Eclipse 配置 1.2.引 ...

  2. 操作页面元素WebElement—Selenium自动化测试指南(4)

    5.5.7  XPath(xPathToFind) 如果以上查找方法都无法定位到指定对象,那么可以按XPath进行查找.例如,百度首页有文本框,如图5-35所示. 图5-35  百度搜索文本框 其HT ...

  3. selenium更改页面元素

    selenium更改页面元素 获取属性 通过get_attribute方法获得一个页面元素的属性 str = driver.find_element_by_xpath('/div[1]').get_a ...

  4. 利用 jQuery 操作页面元素的方法,实现电商网站购物车页面商品数量的增加和减少操作,要求单项价格和总价随着数量的改变而改变

    查看本章节 查看作业目录 需求说明: 利用 jQuery 操作页面元素的方法,实现电商网站购物车页面商品数量的增加和减少操作,要求单项价格和总价随着数量的改变而改变 当用户单击"+" ...

  5. jQuery操作页面元素属性和内容

    操作页面元素的属性 A $("#bu1").click(function(){ //获得元素对象 var tex=$("#inp1"); //获得元素对象的属性 ...

  6. python获取页面隐藏元素_python之selenium操作隐藏元素

    一.html显示与隐藏元素的几种方法 1.display none:隐藏元素 block:显示为块级元素 B元素 display: none 隐藏自身元素以及它的所有后代元素 ,隐藏后的元素不占据任何 ...

  7. 使用protractor操作页面元素

    Protractor是为Angular JS应用量身打造的端到端测试框架.它可以真实的驱动浏览器,自动完成对web应用的测试.Protractor驱动浏览器使用的是WebDriver标准,所以使用起来 ...

  8. juery学习总结(二)——juery操作页面元素

    所有的操作都可以分为增.删.改.查四种,juery选择器代表查看的功能,那么剩下的操作就是对页面元素增.删.改.页面元素有3部分构成:标签,属性和内容,juery对元素的操作可以从这3方面入手. 一. ...

  9. selenium找到页面元素click没反应

    问题描述:通过调试可以看到控制台已经找到了起诉入口页面元素,可是点击"我是原告"没有反应了,也没有报错 解决办法:登录时是跳进了两层的iframe中,需要跳出iframe才能找到我 ...

最新文章

  1. 《自写原创程序,让vim运行c/c++》
  2. jquery高版本全选与全部选无法正常工作
  3. HDU 6030 Happy Necklace
  4. Android开发之RecyclerView滑动到底部的监听方法
  5. 满足条件的数累加(信息学奥赛一本通-T1066)
  6. 卷积神经网络(CNN)结尾篇:可视化跟踪(Visualize)
  7. 自动编译 打包 签名 android程序
  8. python清空list_python怎么清空list
  9. 图:最新微软框架的现场计分双屏管理系统终于收工,大家请欣赏界面。
  10. 汽车振动响应分析-机械阻抗法(含机械网络图,附程序)
  11. 【计算机二级】公共基础知识总结
  12. 道路车辆 盲区监测(bsd)系统性能要求及试验方法_LKA、BSD国标出炉,狩猎和绞杀即将开始...
  13. python编程入门自学
  14. 模拟信号数字化传输系统的设计与仿真分析说明书
  15. 编写程序,从键盘输入 一个 英文字母(有若干行)。如果是大写字母,则输出它对应的小写字母;如果是小写字母,则输出它对应的大写字母。
  16. 宏观经济学gdp计算方法_宏观经济学gdp计算方法
  17. Fortify SCA安装以及卸载
  18. SQL错误(1366):Incorrect String Value
  19. mixamo动画批量添加根骨骼与将动作处理成原地动作(blender)
  20. 关于生意参谋数据采集分析人员,我们的采集程序是否可以使用另一种方式,更不用大改之前所写的代码

热门文章

  1. SVN文件上感叹号、加号、问号等图标的原因
  2. jmeter 聚合报告说明_jmeter之聚合报告
  3. Servlet 自动刷新页面
  4. mysql 21天_把整个Mysql拆分成21天,轻松掌握,搞定(中)
  5. kafka java_Java操作Kafka
  6. tableau两个不同的图合并_【书稿摘要】Tableau地图函数(下)
  7. linux fsck命令,Linux中fsck命令起什么作用呢?
  8. 如何快速学Web前端开发?JavaScript函数好学吗?
  9. 创建MyFilter1类过滤器,对于未登陆用户(如果session对象中包含用户名就认为已登录)进行过滤跳转到登录页面
  10. java 数组排序_用Java对数组排序