【问题标题】:Java with Selenium WebDriverJava 与 Selenium WebDriver
【发布时间】:2015-03-15 07:29:09
【问题描述】:

我正在尝试自动化 gmail 登录。

当我使用sendKeys() 在用户名输入框中输入文本时,它会引发异常。

我的代码:

WebElement userName =   driver.findElement(By.id("Email"));
userName.sendKeys("tutorial");

例外:

Error:The method sendKeys(CharSequence[]) in the type WebElement is not applicable for the arguments (String)
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
The method sendKeys(CharSequence[]) in the type WebElement is not applicable for the arguments (String) at com.gmail.test.Gmaillogin.main(Gmaillogin.java:65)

【问题讨论】:

  • 基于该 sn-p,它应该可以工作。 String 是 CharSequence ,因此传入字符串文字绝对是使用该方法的正确方法。也许提供更多的周围代码可能会揭示更多?编辑:另外,您使用的是什么 IDE,它的编译器级别是什么?
  • 感谢您的回答。我正在使用 Eclipse helios IDE。编译器合规级别为 1.4 。但是,它仍然无法正常工作。
  • 尝试将编译器级别更改为 1.7。较旧的 java 版本在功能上存在差异,有时会产生意想不到的结果。

标签: java sendkeys charsequence


【解决方案1】:

告诉你 sendKeys 方法只获取 CharSequence[] 类型。 您必须创建 CharSequence[] 并向其中插入您的值并在 sendKeys 方法中使用它。

有关使用 CharSequence 的信息,请参阅:How to convert a String to CharSequence?

【讨论】:

    【解决方案2】:

    谢谢你们帮助我。 我能够解决上述问题。

    有效的代码: userName.sendKeys(new String[]{"tutorial"});

    更多详情请查看此链接: Error when using sendKeys() with Selenium WebDriver Java.lang.CharSequence cannot be resolved

    【讨论】:

    • 虽然这可能有效,但我认为这不是一个好的解决方案。使用 new String("") 实例化字符串通常是不好的做法。字符串文字不起作用意味着存在一些潜在的问题,而这个解决方案似乎只是颠覆了它。您是否尝试过使用更新的编译器合规性?我之前读过其他人使用 1.4 作为编译器级别时遇到类似问题。但是升级到更新的解决了它。即使您仅限于 1.4,知道它是否适用于 1.6 或 1.7 也将有助于解释原因。这是我能想到的一件事。
    【解决方案3】:

    只需在您的项目设置下检查项目语言级别并将其更新为 SDK 默认(IntelliJ,不确定 eclipse),它对我有用。

    谢谢

    【讨论】:

      【解决方案4】:

      SendKeys 方法输入应该是 CharacterSequence 数组,而不是 String。 但是在 Java 中,String 等于 CharSequence。 所以你可以按照以下方式进行

      WebElement userName =   driver.findElement(By.id("Email"));
      CharacterSequence[] cs = new String[]{"tutorial"};
      userName.sendKeys(cs);
      

      【讨论】:

      • 当我尝试上面的代码时:WebElement userName = driver.findElement(By.id("Email")); CharacterSequence[] cs = new String[]{"tutorial"};用户名.sendKeys(cs);异常:线程“main”java.lang.Error 中的异常:未解决的编译问题:无法解决字符序列
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-08
      • 1970-01-01
      • 2016-05-21
      • 2018-04-16
      • 2018-05-04
      • 2013-03-08
      • 1970-01-01
      相关资源
      最近更新 更多