版权声明:本文为博主原创文章,转载请注明出处。


  前面已经学习了定位元素,定位只是第一步,定位之后需要对这个元素进行操作,如在百度搜索首页的输入框进行输入文本,对"百度一下"按钮进行单击等,下面就来对这些最常用的方法做一个总结。

方法

描述

用法示例

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_元素方法的更多相关文章

  1. 几种php 删除数组元素方法

    几种php教程 删除数组元素方法在很多情况下我们的数组会出现重复情况,那我们删除数组中一些重复的内容怎么办,这些元素我必须保持他唯一,所以就想办法来删除它们,下面利用了遍历查询来删除重复数组元素的几种 ...

  2. JS1 js获取dom元素方法

     js获取dom元素方法  1.通过ID选取元素(getElementById) 1)使用方法:document.getElementById("domId")         其 ...

  3. DOM 之 document 查找元素方法

    DOM 之 document 查找元素方法 getElementById("idName"); // 始终取得第一个 idName 的元素 getElementsByTagName ...

  4. selenium+python定位元素方法

    定位元素方法 官网地址:http://selenium-python.readthedocs.org/locating-elements.html        这里有各种策略用于定位网页中的元素(l ...

  5. 15个HTML元素方法!

    首先让我们来讨论一下 HTML 与 DOM 之间的区别. 显然,普通的 <table> 元素就是一段 HTML 代码,它可以应用在任何一个以 .html 为扩展名的文件中.元素自带一系列特 ...

  6. 使用webdriverwait封装查找元素方法

    对于selenium原生的查找元素方法进行封装,在timeout规定时间内循环查找页面上有没有某个元素 这样封装的好处: 1.可以有效提高查找元素的效率,避免元素还没加载完就抛异常 2.相对于time ...

  7. html5.js让IE(包含IE6)支持HTML5元素方法

    原文地址:http://blog.sina.com.cn/s/blog_62a36ec401018oqb.html html5.js让IE(包含IE6)支持HTML5元素方法 微软的最新浏览器IE8及 ...

  8. jQuery DOM 元素方法(get)

    jQuery DOM 元素方法 1..get() 获得由选择器指定的 DOM 元素. $(selector).get(index)index 可选.规定获取哪个匹配元素(通过 index 编号). 实 ...

  9. vue修改数组元素方法

    示例代码 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF- ...

随机推荐

  1. EXT.NET复杂布局(二)——报表

    前面提到过工作台(<EXT.NET复杂布局(一)--工作台>)了,不知道各位看过之后有什么感想.这次就介绍介绍使用EXT.NET画几个报表. 看图写作从小学就开始了,如图: 图一 图二 图 ...

  2. Unity 5.3.5f1 (32-bit) 的简单塔防游戏

    我以前使用过unity但是第一次写这么全面的塔防小游戏.我以后会陆续的将我跟过的一些项目的心得经验与体会发表出来希望各位能人能够给出评价,我在此感激各位的批评与赞扬.另外我只是一个学生学艺不精,粗制滥 ...

  3. 【win10】大水牛主机插入耳机没有声音

    主机:大水牛,技嘉主板 操作系统:win10 问题:主机前面插入耳机,没有声音,扬声器图标出错 解决 一..插入耳机 二..Realtek高清晰音频管理器 1.打开音频管理器,点击右下角的设置 2.点 ...

  4. 80C51学习 蜂鸣器

    /* 蜂鸣器分为有源和无源 其中有源是指有振荡源 ULN2003 达林顿管 输入输出反向放大 */ #include "reg52.h" typedef unsigned int ...

  5. scrapy使用

    我们都知道大名鼎鼎的爬虫框架scrapy,它是基于twisted框架基础上进行的封装,它是基于异步调用,所以爬取的速度会很快,下面简单介绍一下scrapy的组成. 首先我们先安装scrapy,如果是基 ...

  6. html页面不使用缓存的代码

    有时候,在我们用动态php页面调用html的时候会出现html缓存现象,所以可以在html头部加入以下代码,html就不会出现缓存了. <meta HTTP-EQUIV="pragma ...

  7. 总结切面编程AOP的注解式开发和XML式开发

    有段日子没有总结东西了,因为最近确实有点忙,一直在忙于hadoop集群的搭建,磕磕碰碰现在勉强算是能呼吸了,因为这都是在自己的PC上,资源确实有点紧张(搭建过程后期奉上),今天难得大家都有空(哈哈哈~ ...

  8. JS组件系列——再推荐一款好用的bootstrap-select组件,亲测还不错

    前言:之前分享过两篇bootstrap下拉框的组件:JS组件系列——两种bootstrap multiselect组件大比拼  和 JS组件系列——Bootstrap Select2组件使用小结 ,收 ...

  9. MemCache在Windows环境下的搭建及启动

    MemCache在Windows环境下的搭建及启动 一.memcache服务器端的安装 1.下载memcached的安装包,memcached_en32or64.zip,下载链接:http://pan ...

  10. android如何与asp.net服务端共享session

    近期需要实现一个功能,就是需要通过发送短信进行注册,现在想把短信验证码放到服务器的session值中,当客户端收到短信并提交短信码时由asp.net服务端进行判断,那么如何共享这个session那么需 ...