Перейти к содержимому

Фотография

Save Data

selenium java

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 Alexei_13

Alexei_13

    Новый участник

  • Members
  • Pip
  • 31 сообщений
  • ФИО:Mikheev.A.V
  • Город:Tel aviv

Отправлено 29 ноября 2015 - 10:09

Добрый день!
При написании тестов иногда возникает потребность проверки даных которые изменяютя автоматический каждый день!
Допустим есть некий сайт на котором есть дата (29/11/2015) нужно проверить что это дата равна этой дате. Исползовать просто  driver.findElement(By.id("element id"))  с assert text  не получится так как завтра дата 30/11/2015
 
Так вот задача как получить дату и сохранить ее для проверки? Можно получить дату с помосщю getText() а как сохранить эту дату ? как правилно исползовать  getText()?
я использую Selenium+ java + test NG + win7.
Есть идеи?

  • 0

#2 aid

aid

    Опытный участник

  • Members
  • PipPipPipPip
  • 448 сообщений
  • ФИО:Николай


Отправлено 29 ноября 2015 - 17:14

По моему скромному мнению, про случай, который вы описываете, просто взять дату вам ничего не даст, так как, положим дата осталась 29, будет ли это правильным, если сегодня 30? Я бы получал посредством языка дату и это значение уже сравнивал бы со значением на сайте. Получал бы например так:

 

DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Date date = new Date();


  • 0

#3 vkazar

vkazar

    Активный участник

  • Members
  • PipPip
  • 128 сообщений
  • ФИО:Виктор
  • Город:Москва

Отправлено 30 ноября 2015 - 07:23

Data - данные
Date - дата (число, месяц, год)
а по сути - получаешь системную дату, как сказал aid, переводишь её в текст и сравниваешь с текстом на странице.
  • 0

Тестировщик должен быть умнее программиста... ну, по крайней мере, хитрее. ©


#4 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 30 ноября 2015 - 07:50

Плюс к вышесказанному, для удобства создай отдельный  класс для работы с датами с нужными тебе методами

public final class DateUtil {

	public static final String DEFAULT_FORMAT = "dd.MM.yyyy";
	
	public static String getCalendarDate(int n) {
		Calendar cal = Calendar.getInstance();
		cal.add(Calendar.DAY_OF_MONTH, n);
		return new SimpleDateFormat(DEFAULT_FORMAT).format(cal.getTime());
	}
	
	
	public static String getTodayDate() {
		Calendar cal = Calendar.getInstance();
		cal.add(Calendar.DAY_OF_MONTH, 0);
		return new SimpleDateFormat(DEFAULT_FORMAT).format(cal.getTime());
	}
	
	
	public static boolean isDateValid(String date) {
		 
	    SimpleDateFormat myFormat = new SimpleDateFormat(DEFAULT_FORMAT);
	    myFormat.setLenient(false);
	    try {
	        myFormat.parse(date);
	        return true;
	    } catch (Exception e) {
	        return false;
	    }
	 
	}

Кстати, в JDK 8 появился новый пакет java.time, т.е. имхо можно будет еще намного проще сделать


  • 0

#5 Petrov.Sergey

Petrov.Sergey

    Опытный участник

  • Members
  • PipPipPipPip
  • 446 сообщений
  • ФИО:Petrov Sergey
  • Город:МО, Лобня


Отправлено 30 ноября 2015 - 16:22

 

Я бы рекомендовал Вам не пользоваться календарём в ущерб java.util.Date.

 

Во-первых, календарь занимает больше памяти.

Во-вторых, время создания объекта Calendar больше, чем обычного Date

В-третьих, Вам всё равно же приходится конвертировать в Date, т.к. методы класса SimpleDateFormat принимают на вход дату только в формате Date.

 

Достаточно убедительно?

 

В-четвёртых, календарь - неклонируемый статический объект с отложенной инициализацией.

Вы не сможете клонировать уже созданный календарь, и Вам придётся раз за разом инициализировать новый объект, т.к. вызовы методов календаря изменяют его содержимое.

 

Если очень нужно удобно манипулировать датой-временем, рекомендовал бы обратить внимание на joda.DateTime.

Объекты этого класса генерятся не статически => можно создать объект и много раз его переиспользовать. Его методы не изменяют сам объект, а возвращают новый объект с нужными свойствами.


  • 0
Форум читаю набегами. По возникшим вопросам можно в скайп (в профиле).

#6 Alexei_13

Alexei_13

    Новый участник

  • Members
  • Pip
  • 31 сообщений
  • ФИО:Mikheev.A.V
  • Город:Tel aviv

Отправлено 01 декабря 2015 - 10:35

большое всем спасибо что поддержали тему с датами все понятно а что если это не дата а какое то число?
я решил эту проблему ,если кому интересно пишите я объесню подробнее
FileOutputStream fos = new FileOutputStream(path);
SheetData.getWorkbook().write(fos);
fos.flush();
fos.close();

 


  • 0



Темы с аналогичным тегами selenium, java

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных