1. 输入框(text field or textarea)

 WebElement we = driver.findElement(By.id("id"));
//将输入框清空
we.clear();
// 在输入框中输入内容
we.sendKeys(“test”);
// 获取输入框的文本内容, 取得就是 value 属性的值
element.getAttribute("value");

2. 下拉选择框(select)

 // 找到下拉选择框的元素
Select select = new Select(driver.findElement(By.id("id")));
// 选择对应的选择项
select.selectByVisibleText(“ 北京市 ”); // 通过可见文本去选择
select.selectByValue(“beijing”); // 通过 html 标签中的 value 属性值去选择
select.selectByIndex(1); // 通过 index(索引从0开始)选择
// 不选择对应的选择项
select.deselectAll();
select.deselectByValue(“ 替换成实际的值 ”);
select.deselectByVisibleText(“ 替换成实际的值 ”);
// 获取所有选择项的值
List<WebElement> wes = select.getAllSelectedOptions();
// 获取第一个选择项或者默认选择项
String text = select.getFirstSelectedOption().getText();

3. 单选框(Radio Button)

 // 找到单选框元素
WebElement we =driver.findElement(By.id("id"));
// 选择某个单选项
we.click();
// 清空某个单选项
we.clear();
// 判断某个单选项是否已经被选择, 返回的是 Boolean 类型
we.isSelected();

4. 多选框(Checkbox)

 // 找到多选框元素
WebElement checkbox = driver.findElement(By.id("id"));
// 点击复选框
checkbox.click();
// 清除复选
checkbox.clear();
// 判断复选框是否被选中
checkbox.isSelected();
// 判断复选框是否可用
checkbox.isEnabled(); 

5. 按钮(Button)

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

6. 左右选择框

 // 左边是可供选择项,选择后移动到右边的框中,反之亦然,先处理选择框
Select lang = new Select(driver.findElement(By.id("languages")));
lang.selectByVisibleText(“English”);
// 再处理向右移动的按钮
WebElement addLanguage = driver.findElement(By.id("addButton"));
addLanguage.click();

7. 弹出对话框(Popup dialogs)

 // 切换到弹出框
Alert alert = driver.switchTo().alert();
// 确定
alert.accept();
// 取消或者点"X"
alert.dismiss();
// 获取弹出框文本内容
alert.getText();

8. 表单(Form)

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

9. 上传文件 (Upload File)

 // 定位上传控件
WebElement adFileUpload = driver.findElement(By.id("id"));
// 定义了一个本地文件的路径
String filePath = "C:\\test\\uploadfile\\test.jpg";
// 为上传控件进行赋值操作,将需要上传的文件的路径赋给控件
adFileUpload.sendKeys(filePath);

10. 拖拉(Drag and Drop)

 // 定义第一个元素
WebElement element =driver.findElement(By.name("source"));
// 定义第二个元素
WebElement target = driver.findElement(By.name("target"));
// 将第一个元素拖拽到第二个元素
(new Actions(driver)).dragAndDrop(element, target).perform();

11. 鼠标悬停(Mouse MoveOn)

 Actions builder = new Actions(driver);
builder.moveToElement(driver.findElement(By.id("id"))).perform();

Java+selenium之WebDriver页面元素的操作(三)的更多相关文章

  1. Java&Selenium自动化测试实现页面元素、页面对象及测试代码分离

    一.摘要 本篇博文将介绍自动化测试实现页面元素.页面对象及测试代码分离在自动化框架中的实现 二.解析页面元素定位信息 首先,将页面元素与实际的代码分离,首先我们将页面元素定位信息和定位表达式保存在属性 ...

  2. Java+selenium之WebDriver模拟鼠标键盘操作(六)

    org.openqa.selenium.interactions.Actions类,主要定义了一些模拟用户的鼠标mouse,键盘keyboard操作.对于这些操作,使用 perform()方法进行执行 ...

  3. Java&Selenium调用JS实现高亮被操作页面元素高亮

    Java&Selenium调用JS实现高亮被操作页面元素高亮 /* * the method of invoking js to do something * * @author daviey ...

  4. selenium 总结篇,常见方法和页面元素的操作

    今天,总结一下selenium怎么操作web页面常见的元素. 主要有: 上传 alter dialog prompt dialog confirm dialog select list radio b ...

  5. 《手把手教你》系列技巧篇(二十三)-java+ selenium自动化测试-webdriver处理浏览器多窗口切换下卷(详细教程)

    1.简介 上一篇讲解和分享了如何获取浏览器窗口的句柄,那么今天这一篇就是讲解获取后我们要做什么,就是利用获取的句柄进行浏览器窗口的切换来分别定位不同页面中的元素进行操作. 2.为什么要切换窗口? Se ...

  6. 《手把手教你》系列技巧篇(四十六)-java+ selenium自动化测试-web页面定位toast-下篇(详解教程)

    1.简介 终于经过宏哥的不懈努力,偶然发现了一个toast的web页面,所以直接就用这个页面来夯实一下,上一篇学过的知识-处理toast元素. 2.安居客 事先声明啊,宏哥没有收他们的广告费啊,纯粹是 ...

  7. 《手把手教你》系列技巧篇(四十五)-java+ selenium自动化测试-web页面定位toast-上篇(详解教程)

    1.简介 在使用appium写app自动化的时候介绍toast的相关元素的定位,在Web UI测试过程中,也经常遇到一些toast,那么这个toast我们这边如何进行测试呢?今天宏哥就分两篇介绍一下. ...

  8. Python+Selenium自动化-定位页面元素的八种方法

    Python+Selenium自动化-定位页面元素的八种方法   本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子. 0.元素定位方法主要有: id定位:find_elemen ...

  9. selenium java maven 自动化测试(二) 页面元素获取与操作

    在第一节中,我们已经成功打开了页面,但是自动化测试必然包含了表单的填写与按钮的点击. 所以在第二章中我以博客园为例,完成按钮点击,表单填写 还是以代码为准,先上代码: package com.ryan ...

随机推荐

  1. Linux 如何通过命令查看一个文件的某几行(中间几行或最后几行)

    linux 如何显示一个文件的某几行(中间几行) [一]从第3000行开始,显示1000行.即显示3000~3999行 cat filename | tail -n +3000 | head -n 1 ...

  2. 关于Oracle数据库故障诊断基础架构

    本节包含有关Oracle数据库故障诊断基础结构的背景信息.它包含以下主题: 故障诊断基础架构概述 关于事件和问题 故障诊断基础设施组件 自动诊断信息库的结构,内容和位置 故障诊断基础架构概述 故障诊断 ...

  3. cartographer 安装

    Debian 8 Jessie 一顿操作梦如虎,最后不知道咋装上的. 参考:https://www.jianshu.com/p/9922a51ce38f https://blog.csdn.net/p ...

  4. .net中的设计模式---单例模式

    .net设计模式: Net设计模式实例之单例模式( Singleton Pattern)  一 : 单例模式的简介:(Brief Introduction) 单例模式(Singleton Patter ...

  5. macbook install mysql

    安装Homebrew,详细步骤参见Homebrew官网. brew doctor确认brew在正常工作. brew update更新包. brew install mysql 安装mysql.log如 ...

  6. 【转】python模块导入细节

    [转]python模块导入细节 python模块导入细节 官方手册:https://docs.python.org/3/tutorial/modules.html 可执行文件和模块 python源代码 ...

  7. Linux内存分配小结--malloc、brk、mmap【转】

    转自:https://blog.csdn.net/gfgdsg/article/details/42709943 http://blog.163.com/xychenbaihu@yeah/blog/s ...

  8. c++不定参数函数

    不定参数当年做为C/C++语言一个特长被很多人推崇,但是实际上这种技术并没有应用很多.除了格式化输出之外,我实在没看到多少应用.主要原因是这种技术比较麻烦,副作用也比较多,而一般情况下重载函数也足以替 ...

  9. SQL Server Profiler 常见问题总结

    1.跟踪指定数据库 SELECT DB_ID('数据名称') 原文:https://jingyan.baidu.com/article/647f0115be128a7f2048a87d.html 2. ...

  10. Ubuntu 关闭触摸板

    1.关闭 sudo modporbe -r psmouse 2.开启 sudo modprobe psmouse