Отображение другого языка, кроме английского, в файле testdata.properties

#javascript #java #eclipse #selenium #application.properties

#javascript #java #eclipse #selenium #application.properties

Вопрос:

Я использую файл testdata.properties для передачи значений в мои тестовые скрипты selenium. Когда я ввожу

 Chinese Charachter : 成長促進

japanese Charachter :`へのコミットメント
  

в файле testdata.properties он отображается как

 chinese charachter :: u6210u9577u4FC3u9032

japanese charachter :: u3078u306Eu30B3u30DFu30C3u30C8u30E1u30F3u30C8
  

Пожалуйста, дайте мне знать, как отобразить текст на японском языке в файле testdata.properties?

Ответ №1:

По умолчанию eclipse предоставляет кодировку «ISO 8859-1 encoding», поэтому, когда вы вставляете любой код на родном языке, например, китайский и японский, он по умолчанию преобразует его в кодировку nativeToAscii.

Необходимо изменить «кодировку ISO 8859-1» на «UTF-8» в вашем eclipse.

Перейдите в Eclipse — Windows — Настройки — Найдите тип содержимого

введите описание изображения здесь

Теперь измените эту кодировку на «UTF-8», и ваш файл свойств будет показан на родном языке. Сначала обновите свою кодировку, а затем примените и закройте.

введите описание изображения здесь

введите описание изображения здесь

Когда вы устанавливаете для своих данных «Кодировку ISO 8859-1» и используете sendkeys, данные автоматически отправляются на родном языке.

смотрите приведенный ниже фрагмент кода.

 package com.software.testing;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.util.Properties;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class Testingclass extends DriverFactory {

    private static WebDriver driver = null;
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        File file = new File("C:\Users\eclipse-workspace\SoftwareTesting\testdata.properties");
        FileInputStream fileInput = null;
        try {
            fileInput = new FileInputStream(file);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        Properties prop = new Properties();

        // load properties file
        try {
            prop.load(fileInput);
        } catch (IOException e) {
            e.printStackTrace();
        }

        System.setProperty("webdriver.chrome.driver", "C:\Users\Desktop\ChromeDriver\chromedriver.exe");
        driver = new ChromeDriver();
        driver.get("http://www.google.com");
        driver.findElement(By.xpath("//input[@title='Search']")).sendKeys(prop.getProperty("japanese"));
        //driver.findElement(By.id("q")).sendKeys(prop.getProperty("chinese"));
    }
}
  

Комментарии:

1. ПРИВЕТ @Dhru ‘soni — После обновления до UTF-8 значения неправильно считываются с помощью приведенного ниже кода из файла testdata.properties. Пожалуйста, помогите мне FileInputStream ip = новый FileInputStream (System.getProperty(«user.dir») «/src/main / java» «/config /конфиг.свойства»); // prop.load(новый InputStreamReader (ip, Charset.forName(«UTF-8»))); // prop.load(новый InputStreamReader (ip, Charset.forName(«ISO-8859 -1»))); опора.нагрузка(ip);

2. @arkadiyala вам не требуется использовать // prop.load(new InputStreamReader(ip, Charset.forName («UTF-8»))); если вы установите кодировку «ISO 8859-1» при копировании данных в тестовые данные в файле свойств, они будут храниться в формате ascii, но при использовании клавиши отправки они автоматически отправятся на родной язык. вы можете сослаться на мой обновленный ответ.

3. ПРИВЕТ, @Dhru ‘soni — Спасибо за вашу помощь !! . Когда я устанавливаю данные «Кодировка ISO 8859-1», sendkey отправляет данные через родной язык, и скрипт работает нормально, но testdata.properties не в удобочитаемом формате. Есть ли какой-либо способ, которым я могу достичь обоих (.properties в удобочитаемом формате senkeys отправляет данные через родной язык)