我们用Selenium打开网页后,可能需要在输入框输入一些内容等等,这时候就需要键盘操作了

使用sendKEys进行键盘操作,在bing的搜索框中输入内容并点击跳转

 1 import org.openqa.selenium.By;
2 import org.openqa.selenium.Keys;
3 import org.openqa.selenium.WebDriver;
4 import org.openqa.selenium.WebElement;
5 import org.openqa.selenium.chrome.ChromeDriver;
6 import org.openqa.selenium.interactions.Actions;
7
8 public class Test {
9 public static void main(String[] args) {
10 System.setProperty("webdriver.chrome.driver", "D:\\New folder\\chromedriver_win32/chromedriver.exe");
11 WebDriver webDriver = new ChromeDriver();
12 try {
13 String s = "https://cn.bing.com/";
14
15 Actions action = new Actions(webDriver);
16
17 webDriver.get(s);
18
19 Thread.sleep(1000);
20
21 WebElement element = webDriver.findElement(By.id("sb_form_q"));
22
23 element.sendKeys("搜索" + Keys.ENTER);
24
25 } catch (InterruptedException e) {
26 e.printStackTrace();
27 } finally {
28 }
29 }
30 }

使用action进行键盘操作,在bing的搜索框中输入内容并点击跳转

 1 import org.openqa.selenium.By;
2 import org.openqa.selenium.Keys;
3 import org.openqa.selenium.WebDriver;
4 import org.openqa.selenium.WebElement;
5 import org.openqa.selenium.chrome.ChromeDriver;
6 import org.openqa.selenium.interactions.Action;
7 import org.openqa.selenium.interactions.Actions;
8
9 public class Test {
10 public static void main(String[] args) {
11 System.setProperty("webdriver.chrome.driver", "D:\\New folder\\chromedriver_win32/chromedriver.exe");
12 WebDriver webDriver = new ChromeDriver();
13 try {
14 String s = "https://cn.bing.com/";
15
16 Actions actionBuilder = new Actions(webDriver);
17
18 webDriver.get(s);
19
20 Thread.sleep(1000); //等待一秒钟,直到页面动态渲染完毕
21
22 WebElement element = webDriver.findElement(By.id("sb_form_q")); //已知搜索框的id
23
24 element.clear();//清除搜索框的内容
25
26 Action action= actionBuilder
27 .keyDown(Keys.SHIFT)
28 .sendKeys(element,"abcd") //输入大写的字母
29 .keyUp(Keys.SHIFT)
30 .sendKeys("abcd")
31 .sendKeys(Keys.ENTER)
32 .build();
33
34 action.perform();
35 // element.sendKeys("搜索" + Keys.ENTER);
36
37 } catch (InterruptedException e) {
38 e.printStackTrace();
39 } finally {
40 // webDriver.close();
41 }
42 }
43 }

java使用Selenium操作谷歌浏览器学习笔记(三)键盘操作的更多相关文章

  1. 数据库学习笔记 (三) python操作数据库

    python 操作MYSQL数据库主要有两种方式: 使用原生模块:pymysql ORM框架:SQLAchemy 一.pymysql 1.1下载安装模块 第一种:cmd下:执行命令下载安装:pip3 ...

  2. java使用Selenium操作谷歌浏览器学习笔记(一)

    下载安装 在淘宝镜像https://npm.taobao.org/mirrors/chromedriver/中下载与浏览器对应的版本 查看浏览器版本 点击查看谷歌浏览器版本 在IDEA项目中导入相关j ...

  3. python学习笔记(三):文件操作和集合

    对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 文件基本操作: f = open('file.txt','r') #以只读方式打开一个 ...

  4. ThinkPHP 学习笔记 ( 三 ) 数据库操作之数据表模型和基础模型 ( Model )

    //TP 恶补ing... 一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: publ ...

  5. python学习笔记三 文件操作(基础篇)

    文件操作 打开文件 open(name[,mode[,buffering]])   open函数使用一个文件名作为强制参数,然后返回一个文件对象.[python 3.5 把file()删除掉]   w ...

  6. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  7. java学习笔记07--日期操作类

    java学习笔记07--日期操作类   一.Date类 在java.util包中定义了Date类,Date类本身使用非常简单,直接输出其实例化对象即可. public class T { public ...

  8. Java IO学习笔记三

    Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...

  9. 学习笔记(三)--->《Java 8编程官方参考教程(第9版).pdf》:第十章到十二章学习笔记

    回到顶部 注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法 ...

随机推荐

  1. Vue3全家桶升级指南一composition API

    1.setup() vue3中的composition API中最重要的就是setup方法了,相当于组件的入口,所有的composition API都必须放到setup()中的使用. setup是在组 ...

  2. Linux下静默安装weblogic12c

    一.实验环境 操作系统:CentOS Linux release 8.3.2011 JDK:1.7.0_151 二.创建应用用户(不建议使用root权限进行服务操作) 1.创建weblogic用户 g ...

  3. 使用.net6 WebApplication打造最小API

    .net6在preview4时给我们带来了一个新的API:WebApplication,通过这个API我们可以打造更小的轻量级API服务.今天我们来尝试一下如何使用WebApplication设计一个 ...

  4. .NET Core 对象池的使用

    昨天在『.NET 大牛之路』技术群和大家聊到了对象池的话题,今天展开详细讲讲这个知识点. 池这个概念大家都很熟悉,比如我们经常听到数据库连接池和线程池.它是一种基于使用预先分配资源集合的性能优化思想. ...

  5. Spring:Spring注解大全

    @Controller 标识一个该类是Spring MVC controller处理器,用来创建处理http请求的对象. @Controller public class TestController ...

  6. kafka错误集锦

    javax.management.InstanceAlreadyExistsException: kafka.consumer:type=FetchRequestAndResponseMetrics, ...

  7. 【转载】每天一个linux命令(11):nl命令

    转载至:http://www.cnblogs.com/peida/archive/2012/11/01/2749048.html nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内 ...

  8. leetcode 数组分成和相等的三个部分

    题目: 给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false. 形式上,如果可以找出索引 i+1 < j 且满足 (A[0] + A[1] + . ...

  9. 文末送书四本 | 这篇Java反射机制太经典!不看后悔!

    先看再点赞,给自己一点思考的时间,如果对自己有帮助,微信搜索[程序职场]关注这个执着的职场程序员. 价值:Java技能,面试经验指导,简历优化,职场规划指导,技能提升方法,讲不完的职场故事,个人成长经 ...

  10. 盘点linux操作系统中的10条性能调优命令,一文搞懂Linux系统调优

    原文链接:猛戳这里 性能调优一直是运维工程师最重要的工作之一,如果您所在的生产环境中遇到了系统响应速度慢,硬盘IO吞吐量异常,数据处理速度低于预期值的情况,又或者如CPU.内存.硬盘.网络等系统资源长 ...