【问题标题】:selenium declared package doesn't match expected package硒声明的包与预期的包不匹配
【发布时间】:2013-03-25 12:58:25
【问题描述】:

我倾向于硒。我无法运行示例脚本。请帮我弄清楚我做错了什么。谢谢! 我的安装: JDK1.7.0._02 selenium-server-standalone-2.31.0.jar Eclipse IDE 3.7.0 Selenium IDE 1.9.0(Firefox 插件)

当我单击代码中的包部分时,Eclipse 指示以下错误消息 1.声明包org.openqa.selenium.example;与预期的包 Seletest1 不匹配 2. token 包语法错误,需要导入 Eclipse 还建议将 Test1.java 移动到 package 'org.openqa.selenium.example

请建议我采取正确的行动,我应该将 org.openqa.selenium.example 导入我的项目的构建路径还是应该将 Test1.java 移动到包中?

在哪里可以找到 package-org.openqa.selenium.example 的位置?

这是我从 Google 代码复制的代码 开始使用 Selenium 我的项目结构 SeleniumTest1>Src>SeleTet1

package SeleTest1;
package org.openqa.selenium.example;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

public class Test1 
{
    public static void main(String[] args) 
    {
        // Create a new instance of the html unit driver
        // Notice that the remainder of the code relies on the interface, 
        // not the implementation.
        WebDriver driver = new HtmlUnitDriver();

        // And now use this to visit Google
        driver.get("http://www.google.com");

        // Find the text input element by its name
        WebElement element = driver.findElement(By.name("q"));

        // Enter something to search for
        element.sendKeys("Cheese!");

        // Now submit the form. WebDriver will find the form for us from the element
        element.submit();

        // Check the title of the page
        System.out.println("Page title is: " + driver.getTitle());
    }

}

执行代码时显示的错误消息 当我在 Eclipse 中运行代码时,我收到以下错误消息: 线程“main”java.lang.Error 中的异常:未解决的编译问题: WebElement 类型中的方法 sendKeys(CharSequence[]) 不适用于参数 (String)

【问题讨论】:

    标签: java eclipse selenium


    【解决方案1】:

    您的代码顶部有重复的包声明。我会删除第二个 (org.openqa.selenium.example),因为您的代码可能在 SeleTest1 文件夹中。

    您的包声明不需要与您正在使用的框架之一匹配。

    【讨论】:

    • 我有 2 个项目位于同一个工作区。删除您建议的包装线后。我收到以下错误。 1.声明的包“”与预期的包“helloworld”不匹配
      资源:MyFirstClass.java 路径:/helloworld/src/helloworld
      WebElement类型中的方法sendKeys(CharSequence[])为不适用于参数(字符串)资源:MyFirstTest.java 路径:/SeleTest1/src/Test1。我应该创建一个新的工作区,还是我需要删除一些文件来分隔 2 个项目,这样它们就不会影响彼此的复杂时间?
    • @user2061466 类的包必须与 java 源文件所在的文件夹名称相对应。如果您的 .java 文件在文件夹 helloworld 内,您可以将包重命名为 @987654326 @,或将文件夹重命名为您声明的任何包。对于像com.example 这样的包名称,您将需要嵌套文件夹:.../com/example
    • 感谢您的回复。我通过添加包 helloworld 解决了这个问题;到 MyFirstClass.java 文件,它删除了错误 1。对于错误 2,我在网上搜索并使用 element.sendKeys(new String[] {"Cheese!"});但我仍然不确定它为什么起作用。和我的 selenium 版本 3.7.0 还是 JDK 版本有关系吗?
    • 通过谷歌搜索,我找到了问题的原因。在 Eclipse 中,项目的编译器设置为 1.2。构建过程抱怨参数类型需要 1.5 或更高版本。我将编译器更改为 1.7>清理构建路径>重建项目。错误消失了。这两个帖子帮助了我:bit.ly/J4zhajbit.ly/10jADrB。再次感谢您的帮助!
    【解决方案2】:

    当您将 selenmium IDE 记录的测试用例导出为 webdriver 格式时,默认情况下 package 语句将添加为

    package org.openqa.selenium.example;
    

    我们需要根据我们在Eclipse中创建的包名来修改它。

    因此,在您的情况下,您可以删除下面的重复行。

    package org.openqa.selenium.example;
    

    完成此修改后,您也不会出现第二个错误。

    【讨论】:

    • 你好hemChe,去掉你建议的包线后。我收到以下错误。
    • 我有 2 个项目位于同一个工作区。删除您建议的包装线后。我收到以下错误。 1.声明的包“”与预期的包“helloworld”不匹配
      资源:MyFirstClass.java 路径:/helloworld/src/helloworld
      WebElement类型中的方法sendKeys(CharSequence[])为不适用于参数(字符串)资源:MyFirstTest.java 路径:/SeleTest1/src/Test1。我应该创建一个新的工作区,还是我需要删除一些文件来分隔 2 个项目,这样它们就不会影响彼此的复杂时间?
    • 您似乎创建了一个名为“helloworld”的包,将package helloworld; 行添加到您的程序中。无需创建另一个工作区。如果您在包 'helloworld' 下的同一个项目中有两个 java 文件,那么这两个 java 文件的第一个语句都应该是 package helloworld;
    • 我通过添加包 helloworld 解决了这个问题;到 MyFirstClass.java 文件,它删除了错误 1。对于错误 2,我在网上搜索并使用 element.sendKeys(new String[] {"Cheese!"});但我仍然不确定它为什么起作用。和我的 selenium 版本 3.7.0 还是 JDK 版本有关系吗?
    猜你喜欢
    • 2019-07-10
    • 2021-11-12
    • 2011-10-23
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    相关资源
    最近更新 更多