Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

TestComplete 9 + Excel - как заставить забирать все данные из Excel файла.


(FreeMan) #1

 

Добрый день, товарищи тестеры!
Помогите начинающему автоматизатору.
 
function Test2()
{
  var browser;
  var panel;
  var form;
  var textbox;
  var passwordBox;
  
  
  InputData = DDT.ExcelDriver("C:\\test\\1.xlsx", "Sheet1", true);  
  while(!InputData.EOF())
  {
  Browsers.Item(btIExplorer).Navigate("http://mail.ru/");
  browser = Aliases.browser;
  panel = browser.pageMailRu.panelMainWrapClearfix.panelLayoutClearfix;
  panel.panelLayoutContent.panelLayoutContentWrapClearfix.panelLayoutCentercol.panelLayoutCentercolWrap.panelNews.panelNewsWrap.panelContentTabNewsTabsRegional.panelSlot3072.panelNewsListItemNewsListItemMai.linkN1042232532.HoverMouse(225, 19);
  form = panel.panelLayoutLeftcol.panelMailbox.panelJsMailboxAuth.formAuth;
  textbox = form.panelMailboxAuthLayoutRowMailbox1.panelMailboxAuthLayoutRowColMail.labelWMailboxLogin.textboxMailboxLogin;
  textbox.SetText(InputData.value("Data"));  
  panel = form.panelMailboxAuthLayoutRowMailbox;
  passwordBox = panel.panelMailboxAuthLayoutRowColMail.labelWMailboxPassword.passwordboxMailboxPassword;
  passwordBox.Click();
  passwordBox.SetText(InputData.value("password"));
  panel.panelMailboxAuthLayoutRowColMail1.submitbuttonMailboxAuthButton.Click();
  browser.pageMailRu1.Wait();
  InputData.Next();
  }
}
 
Следующий скрипт пытается залогиниться на майл ру забирая логин ("Data") и пароль ("password") из файла экселя.
Он работает отлично, но нужно его усовершенствовать.
 
Вот строчка - passwordBox = panel.panelMailboxAuthLayoutRowColMail.labelWMailboxPassword.passwordboxMailboxPassword;
 
в ней указан локатор для поля пароля.
 
Как этот локатор грузить из эксель файла?
 
В идеале есть эксель файл со всеми локаторами и данными, хочу что бы все бралось из эксель файла.
 
Посоветуйте как  решить данную задачу. Спасибо.
 

 


(tisaser) #2

Вы можете написать свой вычилситель контрлов:

* TC 9 поддерживает XPath для WEB тестирования (не помню точно объект и метод от которого он вызывается). То есть вы можете в параметр метода который ищет контрол по XPath вводить данные из Excel, а в Excel sheet добавить колонку XPath (локатор к контролу)

* Можно использовать findChild и findAllChilldren методы от любого видимого объекта. В него надо передавать список свойств, значений и глубину. В данном случае удобнее хранить локатор в XML файле так как свойств и методов может быть разное количество для каждого объекта.

* Можно использовать комплитовский mapping контролов. Мне этот метод не очень нравится, так как обновлять контролы (свойства/значения) не очень удобно и быстро.