Написать несложный скрипт
#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 анонимных