Java+Selenium3方法篇14-元素操作之输入和点击
来源:互联网 发布:黑镜第一季第二集 知乎 编辑:程序博客网 时间:2024/06/05 11:25
前面文章介绍完了driver的一些常见的浏览器设置和查找元素的接口,接下来,我们找到了元素,是为了去操作元素。这篇介绍元素操作常见方法中的,给元素写入一个字符串,和点击元素。一般来讲,给元素输入一个字符串,这样的元素,一般是可以输入文本,基本上是inputbox这样的前端元素,还有些是textarea这样的元素。而点击元素,这个范围就大了,第一个肯定是点击按钮,除了按钮,单选,多选按钮,有些label标签和超链接也是用点击方法。给元素上传入一个字符串并显示在该元素上,我们用sendKeys()方法,点击元素,我们用click()方法。
我想先来看看sendKeys()和click()的源码。
public void click() { execute(DriverCommand.CLICK_ELEMENT, ImmutableMap.of("id", id)); }public void sendKeys(CharSequence... keysToSend) { File localFile = fileDetector.getLocalFile(keysToSend); if (localFile != null) { String remotePath = upload(localFile); keysToSend = new CharSequence[]{remotePath}; } execute(DriverCommand.SEND_KEYS_TO_ELEMENT, ImmutableMap.of("id", id, "value", keysToSend)); }上面第一个是我们需要调用的click()方法。click方法里面调用了DriverConmand类中的一个方法,叫CLICK_ELEMENT,也就是点击元素,这个方法底层应该是用javascript实现的。因为浏览器大部分都支持Javascript这个脚本语言。第二个方法是sendKes(),这个方法大致实现步骤是这样的:把你想要输入的字符串,放到本地一个文件,这样java就能识别这个文件,然后调用upload()方法,把这个包含字符串文件进行zip压缩,上传到一个浏览器端,然后浏览器端得到zip文件,进行加压缩,把文件里面的字符串提取出来,变成一个CharSequence对象,也就是一个新的有序的字符串对象,最后执行DriverCommad里面关于传字符到元素的方法。整个sendKeys()实现流程就是这样,了解一下就可以。
运用举例,用sendKeys()方法给百度搜索输入框输入一个关键词,用click()方法点击搜索提交按钮。
package lessons;import java.util.concurrent.TimeUnit;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;public class FindElements {public static void main(String[] args) {System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.manage().window().maximize(); driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); driver.get("https://news.baidu.com"); driver.findElement(By.id("kw")).sendKeys("Selenium"); driver.findElement(By.id("su")).click(); }}总结:
给元素上输入字符,就调用sendkeys()方法这个方法的参数,一般都是String类型,模拟鼠标左键,点击元素就调用click()方法,这两个方法没有返回值。基本上你的自动化测试脚本,大部分方法都是围绕这两个使用频率最高的事件服务。
阅读全文
0 0
- Java+Selenium3方法篇14-元素操作之输入和点击
- Java+Selenium3方法篇15-元素内清除文本操作
- Appium基础篇11-元素操作之点击和输入
- Java+Selenium3方法篇35-如何点击菜单下子菜单
- Java+Selenium3方法篇36-如何模拟组合键输入
- Java+Selenium3方法篇24-单选和多选按钮操作
- Java+Selenium3方法篇24-单选和多选按钮操作
- Java+Selenium3方法篇33-Actions-拖拽操作
- Java+Selenium3方法篇47-字符串切片操作
- Java+Selenium3方法篇5-findElement之By id
- Java+Selenium3方法篇6-findElement之By XPath
- Java+Selenium3方法篇7-findElement之By LinkText
- Java+Selenium3方法篇8-findElement之By ClassName
- Java+Selenium3方法篇9-findElement之By Name
- Java+Selenium3方法篇10-findElement之By PartialLinkText
- Java+Selenium3方法篇11-findElement之By CSS
- Java+Selenium3方法篇12-findElement之By TagName
- Java+Selenium3方法篇48-如何获取日期和时间
- SpringJdbc访问数据库
- hadoop新版的api接口实现启动运行hadoop代码
- 回顶部
- win10你没有权限在此位置中保存文件
- EditPlus技巧集锦
- Java+Selenium3方法篇14-元素操作之输入和点击
- 相会·《基层风云·1》·二
- 代码练习
- 给java初学者关于jdk jre eclipse tomcat jetty 的疑惑的说明
- sql查询优化
- C++基础入门知识
- Selenium自动化测试-入门
- SE02 Unit07 XML语法 、 XML解析
- Android在As中org.apache.http系列的包不能使用