我们用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. 13、windows下卸载oracle

    13.1.停用oracle服务: 进入计算机管理,在服务中,找到oracle开头的所有服务,右击选择停止: 13.2.删除oracle: 在开始菜单中,找到oracle->Universal I ...

  2. Collections中的实用方法

    总结一下java.util.Collections类内部的静态方法. checkedCollection(Collection<T> , Class<T> type) chec ...

  3. Nginx:Nginx配置url重定向

    符号含义: 正则表达式匹配: ~ 为区分大小写匹配 ~* 为不区分大小写匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配: -f和!-f用来判断是否存在文件 -d和!-d用 ...

  4. Thread对象 既传入了Runnable对象又重写了run()方法

    Thread本身是一个类,其run(): 正常情况下, target(即传入的new Runnable()对象)不为空,就是执行target里面的run方法 但是,重新run()方法之后,就不会在执行 ...

  5. MYSQL数据库数据拆分之分库分表总结 (转)

      数据存储演进思路一:单库单表 单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到. 数据存储演进思路二:单库多表 随着用户数 ...

  6. bugku本地包含

    重点:eval()函数有执行漏洞 函数本身作用,把字符串当成php代码计算. 所以自然想到,可以把我们的写好的php代码写入进去. 题目又暗示在本地,想到flag.php了,所以想办法把文件里面的内容 ...

  7. esp32 Guru Meditation 错误解决方案(转)

    Guru Meditation本节将对打印在 Guru Meditation Error: Core panic'ed后面括号中的致错原因进行逐一解释.IllegalInstruction此 CPU ...

  8. PYTHON2.7安装 pyinstaller出错,不能正常安装

    解决方法: pip2.7 install pyinstaller==3.4

  9. Pytest单元测试框架之parametrize参数化

    1.参数化的本质:相同的步骤,但测试数据不同,比如登录的场景 import mathimport pytest# 方式一:分离出Listdef list_Test(): list = [ [2, 2, ...

  10. [NOIp2017]宝藏 题解

    非常巧妙的 \(O(n^23^n)\) 做法. 题目的本质是要求一棵生成树,使得其每条边的长度与这条边的起点深度乘积的和最小. 我们使用状压 DP,考虑到当前状态与已经打通的点和深度有关,不妨设 \( ...