TestComplete + Excel - как заставить забирать все данные из Excel файл
#1
Отправлено 27 ноября 2012 - 00:49
Помогите начинающему автоматизатору.
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;
в ней указан локатор для поля пароля.
Как этот локатор грузить из эксель файла?
В идеале есть эксель файл со всеми локаторами и данными, хочу что бы все бралось из эксель файла.
Посоветуйте как решить данную задачу. Спасибо.
#2
Отправлено 27 ноября 2012 - 06:57
var obj = eval("Aliases.browser.blahblahblah");Т.е. в Вашем случае будет что-то вроде:
var passwordBox = eval(InputData.value("locator"));
#3
Отправлено 27 ноября 2012 - 21:57
Для конвертации строки "Aliases.browser.blahblahblah" в собственно объект Aliases.browser.blahblahblah нужно использовать eval:
var obj = eval("Aliases.browser.blahblahblah");Т.е. в Вашем случае будет что-то вроде:var passwordBox = eval(InputData.value("locator"));
Огромное спасибо! помогло.
#4
Отправлено 28 ноября 2012 - 00:10
Например есть две функции - 1) логин
2) логаут
Создаю тест - вызываю эти функции сначала логин а потом логаут. Но я хочу что бы сами функции хранились в эксель файле ( например на разных страницах, а джава код в первой ячейке).
Как это реализовать?
#5
Отправлено 28 ноября 2012 - 07:05
var oExcel = Sys.OleObject("Excel.Application"); var oWorkbook = oExcel.Workbooks.Open("C:\\functions.xlsx"); eval(oWorkbook.Sheets("Sheet1").Cells(1, 1).Text); // Загружаем функцию login login(); eval(oWorkbook.Sheets("Sheet2").Cells(1, 1).Text); // Загружаем функцию logout logout();
#6
Отправлено 29 ноября 2012 - 03:08
Так же, eval'ом:
var oExcel = Sys.OleObject("Excel.Application"); var oWorkbook = oExcel.Workbooks.Open("C:\\functions.xlsx"); eval(oWorkbook.Sheets("Sheet1").Cells(1, 1).Text); // Загружаем функцию login login(); eval(oWorkbook.Sheets("Sheet2").Cells(1, 1).Text); // Загружаем функцию logout logout();
Пишу вот такой скрипт -
function test1 () { var oExcel = Sys.OleObject("Excel.Application"); var oWorkbook = oExcel.Workbooks.Open("C:\\test\\functions.xlsx"); eval(oWorkbook.Sheets("Sheet1").Cells(1, 1).Text); // Загружаем функцию login login(); }
А вот в таком виде пишу в эксель в первую ячейку саму функцию (в тест комплите работает) -
function login() { var browser; Browsers.Item(btIExplorer).Navigate("http://drom.ru/"); browser = Aliases.browser; browser.pageDromRu.panelMain0.panelMain1.panelMain2.tableMenu.cellHover.panel.linkAutoDromRu.Click(); browser.pageHttpAutoDromRu.Wait(); }
Ну и собственно в таком виде не работает. Где я допускаю ошибку?
#7
Отправлено 29 ноября 2012 - 08:43
Навскидку - попробуйте заменить в Excel'е Navigate("http://drom.ru/") на Run("http://drom.ru/"). Navigate подразумевает, что браузер уже запущен, иначе будет ошибка; а Run сам запускает браузер.
#8
Отправлено 29 ноября 2012 - 10:25
Что значит "не работает"? Запостите сюда полный текст и Additional Information ошибки из лога.
Навскидку - попробуйте заменить в Excel'е Navigate("http://drom.ru/") на Run("http://drom.ru/"). Navigate подразумевает, что браузер уже запущен, иначе будет ошибка; а Run сам запускает браузер.
Прямо в точку. Поменял Navigate на Run все заработало. Спасибо огромное!
#9
Отправлено 06 декабря 2012 - 02:42
function Test1() { 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 = eval(InputData.value("panel")); form = eval(InputData.value("form")); textbox = eval(InputData.value("textbox")); textbox.SetText(InputData.value("data")); panel = eval(InputData.value("panel2")); passwordBox = eval(InputData.value("passi")); passwordBox.Click(); passwordBox.SetText(InputData.value("password")); panel.panelMailboxAuthLayoutRowColMail1.submitbuttonMailboxAuthButton.Click(); browser.pageMailRu1.Wait(); InputData.Next(); } }
все запихал в эксель файл, но вот это место не удается.
panel.panelMailboxAuthLayoutRowColMail1.submitbuttonMailboxAuthButton.Click(); // нажатие на кнопку войти.
как это дело запихнуть в эксель?
#10
Отправлено 13 декабря 2012 - 14:21
#11
Отправлено 18 декабря 2012 - 07:45
еще как вариант используй класс для работы с екселем, который лежит на просторах паутины
Речь, видимо, об этом?
http://autotestgroup...terials/17.html
TestComplete для начинающих (видеозаписи курса)
Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)
Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных