Java+Selenium3方法篇14-元素操作之输入和点击

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011541946/article/details/73431154

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

展开阅读全文

没有更多推荐了,返回首页