java - 使用Selenium自动进行翻译测试

标签 java selenium selenium-webdriver

我想在页面上测试翻译

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

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

然后我将翻译后的文本添加为​​“ key = value”


登录=登录
密码=密码
button.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

最佳答案

我们可以使用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 - 使用Selenium自动进行翻译测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60801245/

相关文章:

ruby - 使用 rspec 的 Selenium 屏幕截图

java - 使用 Selenium Webdriver 和 Java 检查特定 H3 文本中的输入复选框

java - 从 PDFBox 剥离时的文本坐标

java - 如何在JAVA中打印对象数组

java - Hibernate 中的 boolean 真值

java - 如何更改有序+持久集合中的顺序?

java - 使用 Ashot 和 Selenium 从多个 URL 截取屏幕截图

java - 如何使用 selenium 获取 HTML5 验证消息?

java - Chrome 驱动程序停止使用最新的 Chrome 驱动程序 2.24 的 Chrome 浏览器版本 54

selenium - Chrome 74 : Deleting cookies takes very long time