Написать несложный скрипт
#1
Отправлено 02 марта 2011 - 11:23
1. проверить sqrt
2. 2+2
3. 1/х
Очень нужно, заранее благодарю)
#2
Отправлено 17 октября 2011 - 11:28
[ ] window Calc = MainWin("$C:\WINDOWS\system32\calc.exe")
[-] testcase Calculator() appstate none
[ ] Calc.SetActive()
[ ] //Standard skin
[ ] Calc.Menu("#2").MenuItem("#1").Pick()
[ ] //SQRT
[ ] Calc.PushButton("#3").Click()
[ ] Calc.TextField("#1").SetText("16")
[ ] sleep(2)
[ ] INTEGER iFirst = Val(Calc.TextField("#1").GetText())
[ ] Calc.PushButton("#9").Click()
[ ] sleep(2)
[ ] INTEGER iLast=Val(Calc.TextField("#1").GetText())
[ ] INTEGER iRes=iLast*iLast
[-] if(iFirst==iRes)
[ ] Print("sqrt passed! {iLast} * {iLast} = {iFirst}")
[-] else
[ ] Print("sqrt failure! {iLast} * {iLast} != {iFirst}")
[ ] //2+2
[ ] Calc.PushButton("#3").Click()
[ ] sleep(2)
[ ] Calc.TextField("#1").SetText("2")
[ ] Calc.PushButton("#26").Click()
[ ] sleep(2)
[ ] Calc.TextField("#1").SetText("2")
[ ] INTEGER iValue = Val(Calc.TextField("#1").GetText())
[ ] Calc.PushButton("#27").Click()
[ ] sleep(2)
[ ] INTEGER iSum = Val(Calc.TextField("#1").GetText())
[ ] INTEGER iEtalon = 4
[-] if(iEtalon == iSum)
[ ] Print("Passed! {iValue} + {iValue} = {iSum}")
[-] else
[ ] Print("Failured! {iValue} + {iValue} != {iSum}")
[ ] //1/x
[ ] Calc.PushButton("#3").Click()
[ ] Calc.TextField("#1").SetText("1")
[ ] sleep(2)
[ ] INTEGER iUp = Val(Calc.TextField("#1").GetText())
[ ] Calc.PushButton("#8").Click()
[ ] sleep(2)
[ ] LIST of INTEGER liValue = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
[ ] INTEGER i = RandInt(1, ListCount(liValue))
[ ] Calc.TextField("#1").SetText("{liValue[i]}")
[ ] sleep(2)
[ ] INTEGER iDown = Val(Calc.TextField("#1").GetText())
[ ] Calc.PushButton("#27").Click()
[ ] sleep(2)
[ ] INTEGER iCalcRes = Val(Calc.TextField("#1").GetText())
[ ] INTEGER iResult = iUp/iDown
[-] if(iResult == iCalcRes)
[ ] Print("Passed! {iUp} / {iDown} = {iResult}")
[-] else
[ ] Print("Failured! {iUp} / {iDown} != {iResult}")
Или так:
[ ] //included files
[ ] use "decl.inc"
[ ] use "product.inc"
[ ]
[ ]
[ ] //project scripts
[ ]
[ ]
[-] testcase db0000() appstate none //Set Standard mode, Move to 0,0 desctop coordinates
[ ] wMain.SetActive()
[ ] wMain.Menu("#2").MenuItem("#1").Check()
[ ] RECT rPosition = wMain.GetRect()
[ ] Desktop.BeginDragAt(1, rPosition.xPos+50, rPosition.yPos+10)
[ ] Desktop.EndDragAt(50, 10)
[ ]
[-] testcase db0001() appstate none //test SQRT function. Use SetText()
[ ] wMain.SetActive()
[ ] wMain.PushButton("#3").Click()
[ ] wMain.TextField("#1").SetText("16")
[ ] INTEGER iFirst = Val(wMain.TextField("#1").GetText())
[ ] wMain.PushButton("#9").Click()
[ ] INTEGER iRes = Val(wMain.TextField("#1").GetText())
[ ] INTEGER iEtalon = iFirst/iRes
[-] if(iEtalon == iRes)
[ ] Print("SQRT passed! {iRes} * {iRes} = {iFirst}")
[-] else
[ ] Print("SQRT failured! {iRes} * {iRes} != {iFirst}")
[ ]
[-] testcase db0002() appstate none //test "+" function. Use LIST
[ ] wMain.SetActive()
[ ] wMain.PushButton("#3").Click()
[ ] INTEGER i
[-] for i=1 to 3
[ ] LIST of STRING liButton= {"#5", "#6", "#7", "#11", "#12", "#13", "#17", "#18","#19","#23"}
[ ] INTEGER iID = RandInt(1, ListCount(liButton))
[-] if(i==1)
[ ] wMain.PushButton("{iID}").Click()
[ ] INTEGER iValue1 = Val(wMain.TextField("#1").GetText())
[ ] wMain.PushButton("#26").Click()
[-] else
[ ] wMain.PushButton("{iID}").Click()
[ ] INTEGER iValue2 = Val(wMain.TextField("#1").GetText())
[ ] wMain.PushButton("#27").Click()
[ ] INTEGER iRes = Val(wMain.TextField("#1").GetText())
[ ] INTEGER iEtalon = iValue1+iValue2
[-] if(iRes == iEtalon)
[ ] Print("' + ' passed! {iValue1} + {iValue2} = {iEtalon}")
[-] else
[ ] Print("' + ' failured! {iValue1} + {iValue2} = {iEtalon}")
[ ]
[-] testcase db0003() appstate none //test "/" function. Use CaptureBitmap(). Etalon made by myself
[ ] wMain.SetActive()
[ ] // 100 / 85
[ ] wMain.PushButton("#3").Click()
[ ] wMain.PushButton("#17").Click()
[ ] wMain.PushButton("#23").Click()
[ ] wMain.PushButton("#23").Click()
[ ] wMain.PushButton("#8").Click()
[ ] wMain.PushButton("#6").Click()
[ ] wMain.PushButton("#12").Click()
[ ] wMain.PushButton("#27").Click()
[ ] //Screen
[ ] wMain.TextField("#1").CaptureBitmap("c:\res.bmp")
[ ] BOOLEAN bValue = SYS_CompareBitmap ("c:\res.bmp", "c:\etalon.bmp")
[-] if(bValue)
[ ] Print(" '/' passed!")
[-] else
[ ] Print("' / ' failured!")
#3
Отправлено 02 ноября 2011 - 18:16
Здравствуйте! Возникло пару вопросов..
Во фрейме вы используете мультитеги? Или тут {iID} чудно преобразуется в #iID? Выглядит как обращение по кепшену..
[ ] wMain.PushButton("{iID}").Click()
...
[ ] wMain.PushButton("#26").Click()
И ещё.. В соседней теме вы писали:
Что можно сделать, чтобы приблизить этот код к идеалу? =) Во втором варианте, например.Код далеко не идеален, но для старта пойдет.
Спасибо.
#4
Отправлено 06 ноября 2011 - 16:07
for i=1 to 3
[ ] LIST of STRING liButton= {"#5", "#6", "#7", "#11", "#12", "#13", "#17", "#18","#19","#23"}
[ ] INTEGER iID = RandInt(1, ListCount(liButton))
[-] if(i==1)
[ ] wMain.PushButton("{iID}").Click()
[ ] INTEGER iValue1 = Val(wMain.TextField("#1").GetText())
[ ] wMain.PushButton("#26").Click()
Тут оглашен лист айдишек кнопок калькулятора. Элементы этого листа рандомно вставляются в переменную iID. Так у нас получится:
wMain.PushButton("#5").Click()
wMain.PushButton("#6").Click()
......
wMain.PushButton("#19").Click()
wMain.PushButton("#23").Click()
Последняя строка данного куска кода нажимает на кнопку "+".
Обращаться по кепшену не советую ибо несет за собой много проблем.
Что можно сделать, чтобы приблизить этот код к идеалу? =) Во втором варианте, например.
Для второго варианта - переписать весь код:))
#5
Отправлено 08 ноября 2011 - 15:10
Да, спасибо, был невнимателен.Рассмотрим весь блок кода:
...
И тем не менее в данном случае кажется весьма удобным использовать кепшены для набора чисел (передаваемых в функцию, например). Разве нет?Обращаться по кепшену не советую ибо несет за собой много проблем.
Хотя другой такой пример придумать тяжело, да.
Вооот как.. А не могли бы вы хотя бы очертить основные направления? =)Для второго варианта - переписать весь код:))
#6
Отправлено 11 ноября 2011 - 22:21
все что пришло в голову - использовать локаторы, передача айди, кепшенов, вин айди, сделать с помощью ВинАпи, работать со статическим набором. Думаю. еще можно выделить множество способов, но зачем через зад лазить?
Хотя, как писать, это дело каждого. Вопрос не завалит ли проект такой скрипт?
======================================
Ну как сказать) Садитесь да пишите)))
Направления как такого нет)))
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных

