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()方法,这两个方法没有返回值。基本上你的自动化测试脚本,大部分方法都是围绕这两个使用频率最高的事件服务。

原创粉丝点击