#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 отправляет данные через родной язык)