【问题标题】:Automated testing of translations using Selenium使用 Selenium 自动测试翻译
【发布时间】:2020-03-22 15:32:40
【问题描述】:

我想在页面上测试翻译

我已经编写了我的页面类,并创建了测试文件,我在其中使用 JUnit 测试我的页面。

我已经为语言创建了属性文件“en.properties”,这个文件放在我的 Java 项目中,在“src/main/resources/languages”文件夹下。

然后我在 "key=value"

中添加翻译文本
  • login=login

  • 密码=密码

  • button.login=login

在测试文件中,我编写了打开文件并从文件中读取值的方法

public String getTranslation(String key, String language) throws IOException {
        Properties prop = new Properties();
        FileInputStream input = new FileInputStream("src/main/resources/languages/" + language + ".properties");
        prop.load(new InputStreamReader(input, Charset.forName("UTF-8")));
        input.close();
        return prop.getProperty(key);
    }

这个方法点击语言按钮来改变语言,然后它应该检查翻译但我得到错误

@Test
    public void changeLanguageEng(){
        mainPage.clickLanguageButton("Eng");
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        try {
            Assert.assertEquals(mainPage.getHeadingText(),getTranslation("heading","en"));
            Assert.assertEquals(mainPage.getLanguageButtonText(),getTranslation("button.language","en"));
            Assert.assertEquals(mainPage.getLoginButtonText(),getTranslation("button.login","en"));
            Assert.assertEquals(mainPage.getLoginFieldText(),getTranslation("login","en"));
            Assert.assertEquals(mainPage.getPasswordFieldText(),getTranslation("password","en"));
            Assert.assertEquals(mainPage.getErrorText(),getTranslation("error","en"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

java.io.FileNotFoundException: src\main\resources\languages\en.properties(系统找不到指定的文件)

这是我的完整路径

D:\Intellij IDEA\pageobjectseleniumtest\src\main\resources\languages

【问题讨论】:

    标签: java selenium selenium-webdriver


    【解决方案1】:

    我们可以使用 ClassLoader 从资源文件夹中访问文件。请尝试以下代码来解决您的文件未找到异常

    public String getTranslation(String key, String language) throws IOException, FileNotFoundException {
            Properties prop = new Properties();
            InputStream inputStream = getClass().getClassLoader().getResourceAsStream("languages/languages.properties");
            prop.load(new InputStreamReader(inputStream, Charset.forName("UTF-8")));
            inputStream.close();
            return prop.getProperty(key);
            }
    

    【讨论】:

    • 我在 java.base/java.io.Reader.(Reader.java:167) 在 java.base/java.io.InputStreamReader 处收到此错误 java.lang.NullPointerException。(InputStreamReader.java:113) 在 MainPageTest.getTranslation(MainPageTest.java:102) 在 MainPageTest.changeLanguageEng(MainPageTest.java:39)
    • 它没有帮助我
    猜你喜欢
    • 1970-01-01
    • 2021-01-10
    • 2014-02-04
    • 1970-01-01
    • 2011-12-20
    • 2012-11-04
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多