#java #selenium
Вопрос:
У меня есть имя, номер, адрес электронной почты и т.д. в моем Excel, который я извлекаю, используя приведенный ниже код
Номер телефона в Excel — 9888888888
v=wb.getSheet(sheet).getRow(r).getCell(c).toString();
но когда я запускаю свой скрипт для ввода данных, selenium вводит 9.888888888E9.
Я попытался отформатировать ячейку в Excel в «Текст», «Число», но это не сработало.
Как мне заставить его ввести номер, который есть в Excel?
Комментарии:
1. DataFormatter может вам помочь,
2. @Newtoselenium какой метод в принятом ответе сработал для вас. Если вы попробовали 2 для числового значения, было ли у if / else какое-либо отставание, возможно, миллисекунды, но полезно знать
3. если (wb.getSheet(лист).GetRow(r).getCell(c).getCellType() == Cell.CELL_TYPE_NUMERIC) { v = NumberToTextConverter.toText(wb.getSheet(лист).GetRow(r).getCell(c).getNumericCellValue()); } иначе, если(wb.getSheet(лист).GetRow(r).getCell(c).getCellType() == Cell.CELL_TYPE_STRING) { v = wb.getSheet(лист).GetRow(r).getCell(c).getStringCellValue(); } это сработало
Ответ №1:
У sendKeys()
Seleniun нет никакой функции для преобразования текста. Он просто передает значения в пункт назначения. Вам необходимо изменить метод получения значения из Excel. Пожалуйста, попробуйте приведенные ниже возможные решения,
v=wb.getSheet(sheet).getRow(r).getCell(c).getStringCellValue();
или
v=wb.getSheet(sheet).getRow(r).getCell(c).getRawValue();
или
if (wb.getSheet(sheet).getRow(r).getCell(c).getCellType() == Cell.CELL_TYPE_NUMERIC) {
v = NumberToTextConverter.toText(wb.getSheet(sheet).getRow(r).getCell(c).getNumericCellValue());
} else if (wb.getSheet(sheet).getRow(r).getCell(c).getCellType() == Cell.CELL_TYPE_STRING) {
v = wb.getSheet(sheet).getRow(r).getCell(c).getStringCellValue();
}