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

Техники локализации плавающих дефектов
онлайн, начало 17 августа
Школа для начинающих тестировщиков
онлайн, начало 20 августа
Программирование на Python для тестировщиков
онлайн, начало 14 августа
Тестирование без требований
онлайн, начало 17 августа
Фотография

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
  • 821 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 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 WebDriver: полное руководство
онлайн
Программирование на Python для тестировщиков
онлайн




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

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

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

Яндекс.Метрика
Реклама на портале