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

Публикации mskffo

18 публикаций создано mskffo (учитываются публикации только с 19 апреля 2023)


#116463 Поиск объектов на web-странице с помощью XPath

Отправлено автор: mskffo 02 апреля 2013 - 04:44 в SmartBear (AutomatedQA) - Functional Testing

может кто знает, как найти через xpath объект, у которого id формируется динамически при каждом переходе на страницу по шаблону : "sel<3-4 произвольных символа>_chzn".

Попробуйте так:
//*[starts-with(@id, 'sel') and substring(@id, string-length(@id)-4) = '_chzn']


так тоже не получилось, null возвращается



#116389 Поиск объектов на web-странице с помощью XPath

Отправлено автор: mskffo 29 марта 2013 - 06:52 в SmartBear (AutomatedQA) - Functional Testing

В продолжение темы или может уже не в тему:
может кто знает, как найти через xpath объект, у которого id формируется динамически при каждом переходе на страницу по шаблону : "sel<3-4 произвольных символа>_chzn". Можно ли использовать какой-либо символ (типа "*"), указывающий на произвольное количество символов в значении id ?



#116089 Поиск объектов на web-странице с помощью XPath

Отправлено автор: mskffo 21 марта 2013 - 07:07 в SmartBear (AutomatedQA) - Functional Testing

Смущает сообщение ошибке. Page точно существует? Поставьте breakpoint, посмотрите что там за объект, есть ли у него метод EvaluateXPath.


Получается что нет такого методаИзображение



#116086 Поиск объектов на web-странице с помощью XPath

Отправлено автор: mskffo 21 марта 2013 - 06:54 в SmartBear (AutomatedQA) - Functional Testing

А в Firebug или Chrome Developer Tools ваш XPath работает? Т.е. если там в консоли ввести $x('//div[@class="pole fix"]//li/a[text() = "1"]'), то объект находится?


в FireBuge объект находит так: //div[@class="pole fix"]//li/a[text() = "1"]



#116066 Поиск объектов на web-странице с помощью XPath

Отправлено автор: mskffo 20 марта 2013 - 17:11 в SmartBear (AutomatedQA) - Functional Testing

В JScript результат функции EvaluateXPath нельзя использовать напрямую, его сначала надо сконвертировать в JScript-массив:

var tmp = Page.EvaluateXPath(path);
if (tmp != null)
{
  var arr = (new VBArray(tmp).toArray());  // <--- конвертируем в JScript-массив
  arr[0].Click();
}


Не помогло, объекты все равно не находятся, даже если указать полный путь к ним :(



#116037 Поиск объектов на web-странице с помощью XPath

Отправлено автор: mskffo 20 марта 2013 - 12:10 в SmartBear (AutomatedQA) - Functional Testing

Доброго дня!
Пытаюсь использовать xpath для поиска объектов на web-странице: найти какую-либо ссылку и по ней кликнуть.
Однако столкнулась с ошибкой "EvaluateXPath(...) - есть null или не является объектом".
Эта ошибка возникает в конструкции

var path = '//div[@class="pole fix"]//li/a[text() = "1"]'
Page.EvaluateXPath(path)[0].Click();// Page - любая станица, открытая в explorer'e

даже если в переменную path задать полный путь, который выдает FirePath: "html/body/article/div/div/div[3]/div/div/nav/ul/li[1]/a"


В чем может быть проблема, есть идеи?




#115444 TC отправка логов по электронной почте

Отправлено автор: mskffo 06 марта 2013 - 07:47 в SmartBear (AutomatedQA) - Functional Testing

Доброго дня!

Меня просят автоматически по завершении прогона тестов отсылать лог по нескольким адресам корпоративной почты. Лог я сохраняю в формат .mht и помещаю в конкретную папку.
Может кто сталкивался: ТС может выполять рассылку на почту? и если да, то как это можно реализовать?



Заранее благодарю!



#115362 Отлов ошибок JavaScript на web-странице

Отправлено автор: mskffo 04 марта 2013 - 07:40 в SmartBear (AutomatedQA) - Functional Testing

Доброго дня, уважаемые!
Такой вопрос: есть какие-нибудь способы выполнить проверку на наличие JavaScript'овых ошибок на всех страницах explorer' а во время прогона тестов? При чем проверка должна происходить до того как страница прогрузилась.

Прогулки по интернету в поисках ответа на этот вопрос пока результатов не принесли...может я не там ищу?..



#109862 Дерево Aliases для Silverlight-приложения

Отправлено автор: mskffo 18 сентября 2012 - 05:08 в SmartBear (AutomatedQA) - Functional Testing

Всем доброго утра.
Существует проект для Silverlight-приложения, которым давно никто не занимался. Работа с объектами приложения осуществляется через Aliases. За время простоя проекта многие объекты (в силу кропотливого труда наших славных кодеров) изменили свое положение в дереве объектов. Соответственно, теперь при запуске скриптов тест завершается неудачей всякий раз, когда не находит нужный объект на указанном месте.
В связи с этим возник вопрос: можно ли каким-то чудесным образом автоматически обновить все дерево Aliases (скрипт, функция, обработчик или еще как-то) или мне придется вручную проверять путь каждого объекта (а их количество, боюсь соврать, приближается к тысяче)?



#107050 Можно ли написать запрос в БД с использованием переменных

Отправлено автор: mskffo 25 июня 2012 - 06:28 в SmartBear (AutomatedQA) - Functional Testing

Да и вообще непонятно зачем вам передавать параметры в этот запрос, если можно просто сформировать нужный запрос в виде строки:

FindQry.SQL = 'Select Count(*) as counter FROM ' + tab + ' WHERE ' + field + ' = ' + variab;

В случае использования данной строки скрипт прерывается с ошибкой "Недопустимое имя столбца "undefined", только пока непонятно, что именно имеется в виду.



#106810 Можно ли написать запрос в БД с использованием переменных

Отправлено автор: mskffo 18 июня 2012 - 07:53 в SmartBear (AutomatedQA) - Functional Testing

Коллеги, у кого-нибудь есть идеи?
Очень надо с этим вопросом разобраться.
Help me please!!! :cray:



#106728 Можно ли написать запрос в БД с использованием переменных

Отправлено автор: mskffo 15 июня 2012 - 06:37 в SmartBear (AutomatedQA) - Functional Testing

Доброго времени суток, уважаемые!
Возник вопрос: можно ли как-то написать универсальный запрос для проверки наличия в БД какого-либо значения.
Конкретный пример:
У меня выполнение данной функции прерывается ошибкой про неверно заданные параметры на строке "FindQry.Open();"
function CheckExistence (table, field, variable)
{
var FindQry = ADO.CreateADOQuery();
FindQry.ConnectionString = "DSN=TestBase";// соединение с базой настроено через "Администратор ODBC"; коннект есть, другие запросы выполняются
FindQry.SQL = 'Select Count(*) as counter FROM :tab WHERE :fiel = :variab';
FindQry.Parameters.ParamByName("tab").Value = table;
FindQry.Parameters.ParamByName("fiel").Value = field;
FindQry.Parameters.ParamByName("variab").Value = variable;
FindQry.Open();
FindQry.First();
var RowCount = VarToInt(FindQry.FieldByName("counter").Value);
FindQry.Close();
Log.Message("RowCount = " + RowCount);
if (RowCount > 0)
{ Log.Error("В базе имеется указанное значение");}
else {Log.Message("В базе нет строк с указанным значением");}
}

function test ()
{
var param;
param = GenerateINN(); // функция генерит уникальный ИНН
CheckExistence("CounterAgent","INN", param);
}
Может, я тут что-то намудрила, а может, такое в принципе нельзя сделать и для проверки каждой таблицы придется писать запрос?
Помогите разобраться.



#106683 Скрипт для обработки пользовательской формы

Отправлено автор: mskffo 14 июня 2012 - 11:04 в SmartBear (AutomatedQA) - Functional Testing

Коллеги, а есть ли какой-нибудь способ дефолтной установки курсора в объект ButtonEdit при открытии пользовательской формы?



#106646 Скрипт для обработки пользовательской формы

Отправлено автор: mskffo 13 июня 2012 - 13:18 в SmartBear (AutomatedQA) - Functional Testing


Сначала общие советы/замечания:

  • Кнопке "Отмена" поставьте ModalResult = mrCancel, Cancel = True.
  • Вместо TextEdit + кнопка я бы посоветовала использовать компонент TcxButtonEdit, в котором кнопки встроенные. Зайдите в редактор свойства Properties.Buttons и установите кнопке Kind = bkText и Caption = Очистить. Получится так, как на скриншоте в аттаче.
    Так лучше в плане user experience - понятно, что кнопка "Очистить" относится именно к данному полю.
    К тому же, компоненту TcxButtonEdit можно назначить маску, чтобы запретить ввод невалидных символов (букв и т.п.).
  • На кнопку "OK" я бы навесила дополнительную проверку, что текст непустой.
Код - примерно так:
function Main() {
  var frm = UserForms.Form1;

  var res = frm.ShowModal();
  if (res == mrOk) {
    NumProject = parseInt(frm.cxButtonEdit1.Text);
  }
  else {
    Runner.Stop();
  }
}

// Этот обработчик надо прикрутить к событию OnButtonClick компонента TcxButtonEdit
function Form1_cxButtonEdit1_OnButtonClick(Sender, AButtonIndex) {
  UserForms.Form1.cxButtonEdit1.Text = "";
}

// Этот обработчик надо прикрутить к событию OnClick кнопки "ОК"
function Form1_cxButton1_OnClick(Sender) {
  if (UserForms.Form1.cxButtonEdit1.Text == "") {
    ShowMessage("Пожалуйста, введите номер проекта.");
  }
  else {
    UserForms.Form1.ModalResult = mrOk;
  }
 }
 

Спасибо, Ваш ответ очень помог.
Только у меня курсор в cxButtonEdit1 при открытии формы почему-то по центру устанавливается...

Здесь сама виновата...пробелы в свойстве "Text" стояли



#106645 Скрипт для обработки пользовательской формы

Отправлено автор: mskffo 13 июня 2012 - 13:13 в SmartBear (AutomatedQA) - Functional Testing

Сначала общие советы/замечания:

  • Кнопке "Отмена" поставьте ModalResult = mrCancel, Cancel = True.
  • Вместо TextEdit + кнопка я бы посоветовала использовать компонент TcxButtonEdit, в котором кнопки встроенные. Зайдите в редактор свойства Properties.Buttons и установите кнопке Kind = bkText и Caption = Очистить. Получится так, как на скриншоте в аттаче.
    Так лучше в плане user experience - понятно, что кнопка "Очистить" относится именно к данному полю.
    К тому же, компоненту TcxButtonEdit можно назначить маску, чтобы запретить ввод невалидных символов (букв и т.п.).
  • На кнопку "OK" я бы навесила дополнительную проверку, что текст непустой.
Код - примерно так:
function Main() {
  var frm = UserForms.Form1;

  var res = frm.ShowModal();
  if (res == mrOk) {
    NumProject = parseInt(frm.cxButtonEdit1.Text);
  }
  else {
    Runner.Stop();
  }
}

// Этот обработчик надо прикрутить к событию OnButtonClick компонента TcxButtonEdit
function Form1_cxButtonEdit1_OnButtonClick(Sender, AButtonIndex) {
  UserForms.Form1.cxButtonEdit1.Text = "";
}

// Этот обработчик надо прикрутить к событию OnClick кнопки "ОК"
function Form1_cxButton1_OnClick(Sender) {
  if (UserForms.Form1.cxButtonEdit1.Text == "") {
    ShowMessage("Пожалуйста, введите номер проекта.");
  }
  else {
    UserForms.Form1.ModalResult = mrOk;
  }
 }
 

Спасибо, Ваш ответ очень помог.
Только у меня после появления сообщения о вводе номера проекта и нажатия в нем кнопки "Ок" скрипт прерывается



#106644 Скрипт для обработки пользовательской формы

Отправлено автор: mskffo 13 июня 2012 - 13:09 в SmartBear (AutomatedQA) - Functional Testing

Сначала общие советы/замечания:

  • Кнопке "Отмена" поставьте ModalResult = mrCancel, Cancel = True.
  • Вместо TextEdit + кнопка я бы посоветовала использовать компонент TcxButtonEdit, в котором кнопки встроенные. Зайдите в редактор свойства Properties.Buttons и установите кнопке Kind = bkText и Caption = Очистить. Получится так, как на скриншоте в аттаче.
    Так лучше в плане user experience - понятно, что кнопка "Очистить" относится именно к данному полю.
    К тому же, компоненту TcxButtonEdit можно назначить маску, чтобы запретить ввод невалидных символов (букв и т.п.).
  • На кнопку "OK" я бы навесила дополнительную проверку, что текст непустой.
Код - примерно так:
function Main() {
  var frm = UserForms.Form1;

  var res = frm.ShowModal();
  if (res == mrOk) {
    NumProject = parseInt(frm.cxButtonEdit1.Text);
  }
  else {
    Runner.Stop();
  }
}

// Этот обработчик надо прикрутить к событию OnButtonClick компонента TcxButtonEdit
function Form1_cxButtonEdit1_OnButtonClick(Sender, AButtonIndex) {
  UserForms.Form1.cxButtonEdit1.Text = "";
}

// Этот обработчик надо прикрутить к событию OnClick кнопки "ОК"
function Form1_cxButton1_OnClick(Sender) {
  if (UserForms.Form1.cxButtonEdit1.Text == "") {
    ShowMessage("Пожалуйста, введите номер проекта.");
  }
  else {
    UserForms.Form1.ModalResult = mrOk;
  }
 }
 

Спасибо, Ваш ответ очень помог.
Только у меня курсор в cxButtonEdit1 при открытии формы почему-то по центру устанавливается...



#106629 Скрипт для обработки пользовательской формы

Отправлено автор: mskffo 13 июня 2012 - 08:02 в SmartBear (AutomatedQA) - Functional Testing

Доброго времени суток, дамы и господа.
При запуске скрипта открывается форма (скрин приложила).
В TextEdit нужно ввести произвольный номер проекта, состоящий только из 6 цифр. По кнопке "ОК" форма закрывается и введенное значение присваивается глобальной переменной NumProject. По кнопке "Отмена" форма закрывается, скрипт останавливается. По кнопке "Очистить" поле TextEdit очищается.
Помогите, плиз, как описать эти действия с формой.

Прикрепленные изображения

  • Форма.JPG



#103649 Получение случайной даты из интервала

Отправлено автор: mskffo 06 апреля 2012 - 10:43 в SmartBear (AutomatedQA) - Functional Testing

Доброго дня!
Имеется интервал дат с 1.01.2000 по 31.12.2010.
Как вы думаете, каким образом можно сгенерировать случайную дату, входящую в этот интервал?
Вопрос очень злободневный, поскольку в скриптах часто приходится использовать именно произвольную дату.