关于sendkeys()方法在eclipse中编译期报错的解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于sendkeys()方法在eclipse中编译期报错的解决方案相关的知识,希望对你有一定的参考价值。

目前在学习selenium自动化测试,环境配置成功后,能正常调用谷歌浏览器访问网页,并获取页名。在进行下一步学习时,定位元素,并使用元素的方法。

当使用sendkeys()这个方法时,一直提示报错,代码如下:


public class Demo04 {
    public static void main(String[] args) {
        System.out.println("1111");
        System.setProperty("webdriver.chrome.driver",
                ".\\tool\\chromedriver.exe");
        WebDriver wb = new ChromeDriver();
        wb.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        wb.get("https://www.baidu.com");
        WebElement we = wb.findElement(By.id("kw"));
        WebElement we1 = wb.findElement(By.id("su"));
        we.sendKeys(“ceshi”);
        we1.click();
    }
}

用的是myeclipse这个编译器,会提示错误信息:The method sendKeys(CharSequence[]) from the type WebElement refers to the missing type CharSequence

刚开始,自己百度,结果得到的答案基本上是jre版本不对,使用1.7就能解决此问题。于是自己就替换了jre(目前使用的是1.8)。结果红线确实消失了,但运行报错,提示不支持52.0(1.7)

这个答案也许是正确的,但个人认为是针对selenium2,而不似乎selenium3,因为3版本只支持1.8以上的版本。

百度没有答案,于是在各个论坛贴吧里寻求帮助,总结一下:得到三种答案。

第一种:jre换成1.7。

已经试过,针对selenium3无效。

第二种:we.sendkeys("ceshi")用wb.findElement(By.id(new String[]{"ceshi"}))来代替

试过,结果一样报错。

第三种:编译器版本过低,不支持CharSequence这个类型

前两种都已经试过了,无效,对于第三种,只能死马当活马医了,查看本地的myeclipse的版本,发现还是2011年的,这时就有点感觉确实是编译器自身问题了。于是网上下载了myeclipse10.7版本,用新版的编译器运行时,发现确实不报错了。

这个问题,就因为编译器版本过低导致的,整整折磨我两天。总算是解决了,记录一下,也算给自己一个提醒。

 

以上是关于关于sendkeys()方法在eclipse中编译期报错的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

eclipse没办法编译代码,关于项目的都是错误的。

如何在Selenium中使用sendKeys()方法传递一个arraylist

Eclipse 的 Keil ARM 编译器

量角器 .sendKeys() 无法使用 ngModel 处理输入

关于导入geoserver 源码到Eclipse编译运行

关于eclipse,为啥在运行项目时总是这样