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

Int_21h

Регистрация: 31 июл 2011
Offline Активность: 06 апр 2013 13:14
-----

#96663 Написать несложный скрипт

Написано Int_21h 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()

Последняя строка данного куска кода нажимает на кнопку "+".
Обращаться по кепшену не советую ибо несет за собой много проблем.


Что можно сделать, чтобы приблизить этот код к идеалу? =) Во втором варианте, например.


Для второго варианта - переписать весь код:))
  • 1


#95943 wMain.PushButton("#9").Click() - где в туториалах рассказано о

Написано Int_21h 21 октября 2011 - 18:51

Я вот не совсем понял что конкретно нужно...

PushButton("1") - ты кэпшен юзаешь? Тогда учись писать правильно, по айдишках. Они уникальны для каждого элемента, код получится более стабильным.

Далее зачем тут оупен агент? Калькулятор - одно из самых "простых" десктопных приложений для силка.

Что хочешь написать?

Здесь я написал "пример работы с калькулятором для новичков". Код далеко не идеален, но для старта пойдет.
  • 1


#95580 Написать несложный скрипт

Написано Int_21h 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!")


  • 1