Selenium_WebDriver_元素方法
版权声明:本文为博主原创文章,转载请注明出处。
前面已经学习了定位元素,定位只是第一步,定位之后需要对这个元素进行操作,如在百度搜索首页的输入框进行输入文本,对"百度一下"按钮进行单击等,下面就来对这些最常用的方法做一个总结。
|
方法 |
描述 |
用法示例 |
|
void clear() |
清空“文本输入元素”的值; 对其他元素没有影响。 |
示例:清除百度搜索输入栏输入的文本; 方法:driver.findElement(By.id("kw")).clear(); |
|
void click() |
单击此元素。 |
示例:点击百度搜索主页的“新闻”文本链接; 方法:driver.findElement(By.linkText("新闻")).click(); |
|
WebElement findElement(By by) |
使用给定的方法找到的第一个元素; |
示例:定位百度搜索主页的搜索输入框; 方法:driver.findElement(By.id("kw")); |
|
java.util.List<WebElement> findElements(By by) |
使用给定的机制查找当前上下文中的所有元素; |
示例:查找所有的 input 元素; 方法:List<WebElement> inputs = driver.findElements(By.tagName("input")); 备注:可借助List的相关方法进行进一步定位、操作; |
|
java.lang.String getAttribute(java.lang.String name) |
获得给定的元素某一属性的值; |
示例:获得“百度搜索输入框”type属性的值; 方法:System.out.println("输入框type属性:"+ driver.findElement(By.id("kw")).getAttribute("type")); |
|
java.lang.String getCssValue(java.lang.String propertyName) |
获取给定css属性的值; CSS属性(如背景、字体、边框等)可按照DOM CSS2规范获取; |
示例:获得“百度一下按钮”的颜色值; 方法:System.out.println("百度一下按钮颜色:"+ driver.findElement(By.id("su")).getCssValue("backgroundColor")); |
|
Point getLocation() |
返回该元素相对页面左上角的位置坐标 |
示例:返回“百度一下按钮”相对页面左上角的位置坐标 方法:System.out.println("Point:"+ driver.findElement(By.id("su")).getLocation()); |
|
Rectangle getRect() |
获取渲染元素的位置和大小; Chrome & IE可能不支持; |
—— |
|
Dimension getSize() |
获取渲染元素的宽度和高度; |
示例:获取百度搜索框的宽度和高度 方法:System.out.println("搜索框:"+ driver.findElement(By.id("kw")).getSize()); |
|
java.lang.String getTagName() |
获取该元素的标记名称; |
示例: 方法:System.out.println("更多产品的tagname:"+ driver.findElement(By.linkText("更多产品")).getTagName()); 场景:<a href="http://www.baidu.com/more/" name="tj_briicon" class="s_bri" target="_blank"> 更多产品</a> |
|
java.lang.String getText() |
获取元素的文本。 |
示例:获取百度首页底部的备案显示; 方法:System.out.println("Text:"+ driver.findElement(By.id("cp")).getText()); |
|
boolean isDisplayed() |
判断当前元素是否显示; True=显示,False=隐藏; |
示例:判断百度首页底部的备案是否显示; 方法:System.out.println("Text:"+ driver.findElement(By.id("cp")).isDisplayed()); |
|
boolean isEnabled() |
判断元素是否可用; |
—— |
|
boolean isSelected() |
确定该元素是否被选中; 此操作只适用于输入元素,如复选框、选择和单选按钮中的选项。 |
—— |
|
void sendKeys ( java.lang.CharSequence... keysToSend ) |
模拟输入一个元素; |
示例:在百度搜索框中输入“Selenium; 方法:driver.findElement(By.id("kw")).sendKeys("Selenium"); |
|
void submit() |
提交表单给远程服务器; 注:如果提交导致当前页面更改,则此方法将阻塞,直到加载到新页为止。 异常:NoSuchElementException——如果给定元素不在表单内 |
示例:在百度搜索框中输入“Selenium”,并发送确定搜索请求到服务器; 方法:driver.findElement(By.id("su")).submit(); |
|
以上测试均以 " driver.get("https://www.baidu.com/"); " 为前提; |
||
测试代码如下:
package com.SeleniumLib.jase; import java.util.List; import org.openqa.selenium.By;
import org.openqa.selenium.Point;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver; public class WebElementOperate {
public static void main(String[]args){
System.out.println("start selenium"); WebDriver driver;
System.setProperty("webdriver.chrome.driver","D:/selenium-java-3.5.3/chromedriver.exe"); //chromedriver驱动的本地存放路径
driver = new ChromeDriver();
driver.get("http://www.baidu.com/");
/*driver.findElement(By.id("kw")).sendKeys("Selenium");
driver.findElement(By.id("su")).click();*/ //清空文本输入元素的值
/*driver.findElement(By.id("kw")).sendKeys("Selenium");
driver.findElement(By.id("kw")).clear();*/ //定位元素 && 单击此元素
/*driver.findElement(By.linkText("新闻")).click();*/ //查找所有tagname=input的所有元素
/* List<WebElement> inputs = driver.findElements(By.tagName("input")); //import java.util.List;
System.out.println(inputs.size()); */ //获得“百度搜索输入框”type属性的值;
/*System.out.println("百度搜索输入框type属性:"+driver.findElement(By.id("kw")).getAttribute("type"));*/ //获取给定css属性的值
//System.out.println("borderBottomColor:"+driver.findElement(By.id("su")).getCssValue("backgroundColor")); //获得“百度一下按钮”的颜色值;
//System.out.println("color:"+driver.findElement(By.id("su")).getCssValue("color")); //获得“百度一下字体”的颜色值; //返回“百度一下按钮”相对页面左上角的位置坐标
//System.out.println("Point:"+driver.findElement(By.id("su")).getLocation()); //import org.openqa.selenium.Point; //获取渲染元素的位置和大小
//----Chrome下测试为ERROR:System.out.println("Rect:"+driver.findElement(By.id("kw")).getRect()); //获取渲染元素的宽度和高度;
//System.out.println("搜索框:"+driver.findElement(By.id("kw")).getSize());
//System.out.println("百度一下按钮:"+driver.findElement(By.id("su")).getSize()); //获取元素的标记名称;
//System.out.println("kw的tagname:"+driver.findElement(By.id("kw")).getTagName());
//System.out.println("更多产品的tagname:"+driver.findElement(By.linkText("更多产品")).getTagName()); //场景:<a href="http://www.baidu.com/more/" name="tj_briicon" class="s_bri" target="_blank"> 更多产品</a> //获取文本元素的文本信息;
//System.out.println("Text:"+driver.findElement(By.id("cp")).getText()); //百度底部备案信息 //判断当前元素是否显示
//System.out.println("Text:"+driver.findElement(By.id("cp")).isDisplayed()); //True //看到有人说:这个函数用于判断某个元素是否存在页面上,这里的存在不是肉眼看到的存在,而是html代码的存在。某些情况元素的visibility为hidden或者display属性为none,我们在页面看不到但是实际是存在页面的一些元素;目前未证实该说法; //在百度搜索框中输入“Selenium”
//driver.findElement(By.id("kw")).sendKeys("Selenium"); //在百度搜索框中输入“Selenium”,并发送确定搜索请求到服务器
driver.findElement(By.id("kw")).sendKeys("Selenium");
driver.findElement(By.id("su")).submit(); }
}
CSS属性可参考:http://www.w3school.com.cn/jsref/dom_obj_style.asp#background
Selenium Java API参考路径:https://seleniumhq.github.io/selenium/docs/api/java/index.html
Selenium_WebDriver_元素方法的更多相关文章
- 几种php 删除数组元素方法
几种php教程 删除数组元素方法在很多情况下我们的数组会出现重复情况,那我们删除数组中一些重复的内容怎么办,这些元素我必须保持他唯一,所以就想办法来删除它们,下面利用了遍历查询来删除重复数组元素的几种 ...
- JS1 js获取dom元素方法
js获取dom元素方法 1.通过ID选取元素(getElementById) 1)使用方法:document.getElementById("domId") 其 ...
- DOM 之 document 查找元素方法
DOM 之 document 查找元素方法 getElementById("idName"); // 始终取得第一个 idName 的元素 getElementsByTagName ...
- selenium+python定位元素方法
定位元素方法 官网地址:http://selenium-python.readthedocs.org/locating-elements.html 这里有各种策略用于定位网页中的元素(l ...
- 15个HTML元素方法!
首先让我们来讨论一下 HTML 与 DOM 之间的区别. 显然,普通的 <table> 元素就是一段 HTML 代码,它可以应用在任何一个以 .html 为扩展名的文件中.元素自带一系列特 ...
- 使用webdriverwait封装查找元素方法
对于selenium原生的查找元素方法进行封装,在timeout规定时间内循环查找页面上有没有某个元素 这样封装的好处: 1.可以有效提高查找元素的效率,避免元素还没加载完就抛异常 2.相对于time ...
- html5.js让IE(包含IE6)支持HTML5元素方法
原文地址:http://blog.sina.com.cn/s/blog_62a36ec401018oqb.html html5.js让IE(包含IE6)支持HTML5元素方法 微软的最新浏览器IE8及 ...
- jQuery DOM 元素方法(get)
jQuery DOM 元素方法 1..get() 获得由选择器指定的 DOM 元素. $(selector).get(index)index 可选.规定获取哪个匹配元素(通过 index 编号). 实 ...
- vue修改数组元素方法
示例代码 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF- ...
随机推荐
- 【Ubuntu Desktop】VMware 中 Unknown Display
由于之前重复的安装卸载Unity桌面,今天遇到了在设置虚拟机分辨率的时候,遇到了Unknown Display问题 参考网上内容 使用 xrandr调节分辨率 xrandr只能在虚拟机本地终端执行,不 ...
- WeQuant交易策略—NATR
策略名称:NATR策略关键词:规范真实波幅.价格突破. NATR,是对ATR指标进行了标准化.主要应用于了解价格的震荡幅度和节奏,在窄幅整理行情中用于寻找突破时机.本策略在当前价格高于之前价格一定倍数 ...
- Jquery $(this).attr和$(this).val用法示例
以下是个人心得整理,有兴趣朋友可以参考参考 $(this).attr(key); 获取节点属性名为key的值,相当于getAttribute(key)方法 $(this).attr(key,value ...
- Java自定义注解及使用
本文通过一个简单的例子展示注解的工作原理. 1.声明注解类型 @Target(value = ElementType.METHOD) //声明该注解的运行目标: 方法 @Retention(value ...
- java private修饰的类和变量
private主要用来修饰变量和方法,一般不会用来修饰类,除非是内部类. 1.new对象 被private修饰的变量和方法,只能在自己对象内部使用,其他对象即使是new你这个对象也是获取不到被priv ...
- [2017-09-04]Abp系列——为什么值对象必须设计成不可变的
本系列目录:Abp介绍和经验分享-目录 这篇是之前翻备忘录发现漏了的,前阵子刚好同事又提及过这个问题,这里补上. 本文重点在于理解什么是值对象的不可变性. Abp的ValueObject以及EF的Co ...
- SSH2项目网上书店系统手把手教学_Struts2+Spring+Hibernate整合开发
一 序言 鉴于目前J2EE的火热程度,SSH2是每个学生毕业前都必须掌握的一门技术,所以在这里我就使用SSH2技术做一个小型项目,和大家一起学习. SSH2技术的基础概论就不再提了,直接说特点吧. 1 ...
- caffe cifar10试跑问题总结
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p. ...
- spring配置datasource三种方式
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp34 spring配置datasource三种方式 1.使用org.spri ...
- outlook 无法搜索邮件的解决方法
我的outlook版本是2007 SP3,英文版.一直有搜索不到邮件的问题,例如在搜索框输入发件人的名字,或者邮件中的词语,就是搜索不到邮件,即使那封邮件确实存在. 在网上搜索,Microsoft 的 ...