Autoit Sitedeki inputu ve Butonu Kullanmak

Programlama ve Script dilleri konusunda bilgi paylaşım alanıdır.
Cevapla
darendeli
Kilobyte1
Kilobyte1
Mesajlar: 202
Kayıt: 06 Haz 2016, 16:55
Teşekkür etti: 1 kez
Teşekkür edildi: 6 kez

Autoit Sitedeki inputu ve Butonu Kullanmak

Mesaj gönderen darendeli »

S.a Simdi Bir sitedeki inputu Ve Butonu Düzenlemis Oldugum Guideki input Ve buton ile o Sitedeki islemi Gerceklestirmek istiyorum Nasıl Bir Yol İzlenmeli..

Kod: Tümünü seç

#include <IE.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 690, 119, 192, 124)
$Input1 = GUICtrlCreateInput("", 24, 48, 217, 21)
$Input2 = GUICtrlCreateInput("", 264, 48, 217, 21)
$Label1 = GUICtrlCreateLabel("1.Maçı Yazınız", 48, 16, 72, 17)
$Label2 = GUICtrlCreateLabel("2.Maçı Yazınız", 304, 8, 72, 17)
$Label3 = GUICtrlCreateLabel("Analiz  Sonucu", 120, 96, 75, 17)
$Label4 = GUICtrlCreateLabel("", 224, 96, 4, 4)
$Button1 = GUICtrlCreateButton("Analiz ET", 504, 16, 171, 81)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			_SiteinputveButon()
	$read = InetRead("https://www.statarea.com/custompredict", 1)
			If Not(@error) Then
				$read = BinaryToString ($read, 4)
				$exp = StringRegExp($read, '<div class="value">(.*?)</div>', 3)
				If Not(@error) Then
					GUICtrlSetData($Label4, $exp[0])
				EndIf
		EndIf
	EndSwitch
WEnd


Func _SiteinputveButon()
	Global $oIE = _IECreate ("https://www.statarea.com/custompredict" ,0,0)
	Global $Macinput1 = _IEGetObjByName ($oIE,"hostteam")
	Global $Macinput2 = _IEGetObjByName ($oIE,"guestteam")
	Global $Analizbutton = _IEGetObjByName ($oIE,"compareteamsubmit")
	$Input1 = GUICtrlRead($Macinput1)
	$Input2 = GUICtrlRead($Macinput2)
	$Button1 = GUICtrlRead($Analizbutton)

	_IEFormElementSetValue ($Macinput1,"hostteam")
	_IEFormElementSetValue ($Macinput1,"guestteam")
	_IEAction ($Analizbutton,"click")

EndFunc

Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 269
Kayıt: 29 Ağu 2014, 20:42
Teşekkür etti: 14 kez
Teşekkür edildi: 24 kez

Re: Autoit Sitedeki inputu ve Butonu Kullanmak

Mesaj gönderen BlueLife »

@darendeli

Selam, bu ie komutları malesef herzaman düzgün çalışmayacaktır. Bazı sistemlerde hiç çalışmayabilir. Verdiğin örnekte basit düzeltme yaptım sen kendine göre ayarlarsın. Umarım yapmak istediğini doğru anlamışımdır. Kolay gelsin...

Kod: Tümünü seç

#include <IE.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 690, 119, 192, 124)
$Input1 = GUICtrlCreateInput("Germany (Germany)", 24, 48, 217, 21)
$Input2 = GUICtrlCreateInput("Brazil (Brazil)", 264, 48, 217, 21)
$Label1 = GUICtrlCreateLabel("1.Maçı Yazınız", 48, 16, 72, 17)
$Label2 = GUICtrlCreateLabel("2.Maçı Yazınız", 304, 8, 72, 17)
$Label3 = GUICtrlCreateLabel("Analiz  Sonucu", 120, 96, 75, 17)
$Label4 = GUICtrlCreateLabel("", 224, 96, 4, 4)
$Button1 = GUICtrlCreateButton("Analiz ET", 504, 16, 171, 81)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			_SiteinputveButon()
	$read = InetRead("https://www.statarea.com/custompredict", 1)
			If Not(@error) Then
				$read = BinaryToString ($read, 4)
				$exp = StringRegExp($read, '<div class="value">(.*?)</div>', 3)
				If Not(@error) Then
					GUICtrlSetData($Label4, $exp[0])
				EndIf
		EndIf
	EndSwitch
WEnd


Func _SiteinputveButon()
	Global $oIE = _IECreate ("https://www.statarea.com/custompredict" ,0,1)
	Global $Macinput1 = _IEGetObjByName ($oIE,"hostteam")
	Global $Macinput2 = _IEGetObjByName ($oIE,"guestteam")
	Global $Analizbutton = _IEGetObjByName ($oIE,"compareteamsubmit")

	_IEFormElementSetValue ($Macinput1,GUICtrlRead($Input1))
	_IEFormElementSetValue ($Macinput2,GUICtrlRead($Input2))
	_IEAction ($Analizbutton,"click")
EndFunc
darendeli
Kilobyte1
Kilobyte1
Mesajlar: 202
Kayıt: 06 Haz 2016, 16:55
Teşekkür etti: 1 kez
Teşekkür edildi: 6 kez

Re: Autoit Sitedeki inputu ve Butonu Kullanmak - Çözüldü

Mesaj gönderen darendeli »

Basarılı Olmadı Ya Yapmak istedigim guideki inputa Yazılanı Arka planda sitedeki inputa Yazdırıp Sonucunu Guide Gostermek
Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 269
Kayıt: 29 Ağu 2014, 20:42
Teşekkür etti: 14 kez
Teşekkür edildi: 24 kez

Re: Autoit Sitedeki inputu ve Butonu Kullanmak

Mesaj gönderen BlueLife »

@darendeli

Ilgili hazırlamış olduğun _SiteinputveButon örneği bende sorunsuz çalışıyor. Yani kutulara bilgileri girip butona tıklıyor.
Senin sisteminde bir sorun olabilir. Istersen gui olmadan denemeler yap. Başarılı olursa gui ile denersin.
Daha önce yazdığım üzere ilgili ie udf fonksiyonları malesef stabil değil. Kolay gelsin....

Kod: Tümünü seç

#include <IE.au3>

_SiteinputveButon("Barcelona (Spain)","Real Madrid (Spain)")

Func _SiteinputveButon($hostteam,$guestteam)
	Local $oIE = _IECreate ("https://www.statarea.com/custompredict" ,0,1)
	Local $Macinput1 = _IEGetObjByName ($oIE,"hostteam")
	Local $Macinput2 = _IEGetObjByName ($oIE,"guestteam")
	Local $Analizbutton = _IEGetObjByName ($oIE,"compareteamsubmit")

	_IEFormElementSetValue ($Macinput1,$hostteam)
	_IEFormElementSetValue ($Macinput2,$guestteam)
	_IEAction ($Analizbutton,"click")
EndFunc
darendeli
Kilobyte1
Kilobyte1
Mesajlar: 202
Kayıt: 06 Haz 2016, 16:55
Teşekkür etti: 1 kez
Teşekkür edildi: 6 kez

Re: Autoit Sitedeki inputu ve Butonu Kullanmak

Mesaj gönderen darendeli »

Malesef Olmuyor Gui Olmadanda Denedim Yazı Yazılmıyor...
darendeli
Kilobyte1
Kilobyte1
Mesajlar: 202
Kayıt: 06 Haz 2016, 16:55
Teşekkür etti: 1 kez
Teşekkür edildi: 6 kez

Re: Autoit Sitedeki inputu ve Butonu Kullanmak

Mesaj gönderen darendeli »

Tamam Yazıyı Gerceklestirdim Sadece Sonucu Labele Aktarmak kaldı

Siteden Bilgi Almak istedigim Yer X2 nin Oldugu Bolum
<div class="tip">
<div class="header">TIP</div>
<div class="value">X2</div>
</div>

Kod: Tümünü seç

	$read = InetRead("https://www.statarea.com/custompredict", 1)
			If Not(@error) Then
				$read = BinaryToString ($read, 4)
				$exp = StringRegExp($read, '<div class="tip">(.*?)</div>', 3)
				If Not(@error) Then
					GUICtrlSetData($Label4, $exp[0])
				EndIf
		EndIf
Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 269
Kayıt: 29 Ağu 2014, 20:42
Teşekkür etti: 14 kez
Teşekkür edildi: 24 kez

Re: Autoit Sitedeki inputu ve Butonu Kullanmak

Mesaj gönderen BlueLife »

@darendeli

Sitede formu doldurup (inputları vs.) gönderdiğin için InetRead komutu kullanarak sonuçları alamazsın... IE udfsinde _IEBodyReadHTML fonksiyonu var. Formu gönderdikten sonra _IECreate ile açtığın değişkeni kullanarak bu komut ile htlm bilgilerine ulaşıp sonuçların olup-olmadığını kontrol edebilirsin. Yardım dosyasında örnek vardı. _IEBodyReadText vs. gibi bazı komutlarda var. Tabi sitede kullanılan yönteme göre bunlar da işe yaramayabilir.
Eğer sonuçlar aldığın bilgi içinde varsa StringInst ile konumu bulup StringTrimLeft,StringLeft vs. komutları ile ilgili bilgiyi ayıklayabilirsin. Tabi StringRegExp ile de yapabilirsin.

Fazla yardımcı olmadım, kusura bakma. Kolay gelsin...

Kod: Tümünü seç

#include <IE.au3>

_SiteinputveButon("Barcelona (Spain)","Real Madrid (Spain)")

Func _SiteinputveButon($hostteam,$guestteam)
	Local $oIE = _IECreate ("https://www.statarea.com/custompredict" ,0,1)
	Local $Macinput1 = _IEGetObjByName ($oIE,"hostteam")
	Local $Macinput2 = _IEGetObjByName ($oIE,"guestteam")
	Local $Analizbutton = _IEGetObjByName ($oIE,"compareteamsubmit")

	_IEFormElementSetValue ($Macinput1,$hostteam)
	_IEFormElementSetValue ($Macinput2,$guestteam)
	_IEAction ($Analizbutton,"click")
	; --------------
	Local $sText = _IEBodyReadHTML($oIE)
	MsgBox(0, "Body Text", $sText)
	ClipPut($sText) ;Panoya kopylanan bilgiden istediğin bilgi varmı diye bakarsın.
EndFunc
darendeli
Kilobyte1
Kilobyte1
Mesajlar: 202
Kayıt: 06 Haz 2016, 16:55
Teşekkür etti: 1 kez
Teşekkür edildi: 6 kez

Re: Autoit Sitedeki inputu ve Butonu Kullanmak

Mesaj gönderen darendeli »

Sagol Yinede Bende Suraya Kadar Getirdim Ama Yok Yemiyor :D Az ara vereyim Stringler Yoracak gibi Kolay Ama karısık

Kod: Tümünü seç

#include <IE.au3>
#include <Array.au3>
#include <String.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 690, 119, 192, 124)
$Input1 = GUICtrlCreateInput("Germany (Germany)", 24, 48, 217, 21)
$Input2 = GUICtrlCreateInput("Brazil (Brazil)", 264, 48, 217, 21)
$Label1 = GUICtrlCreateLabel("1.Maçı Yazınız", 48, 16, 72, 17)
$Label2 = GUICtrlCreateLabel("2.Maçı Yazınız", 304, 8, 72, 17)
$Label3 = GUICtrlCreateLabel("Analiz  Sonucu", 120, 96, 75, 17)
$Label4 = GUICtrlCreateLabel("", 224, 96, 24, 24)
$Button1 = GUICtrlCreateButton("Analiz ET", 504, 16, 171, 81)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			_SiteinputveButon()

	EndSwitch
WEnd


Func _SiteinputveButon()
	Global $oIE = _IECreate ("https://www.statarea.com/custompredict" ,0,1)
	Global $Macinput1 = _IEGetObjById ($oIE,"hostteam")
	Global $Macinput2 = _IEGetObjById ($oIE,"guestteam")
	Global $Analizbutton = _IEGetObjById ($oIE,"compareteamsubmit")
	_IEFormElementSetValue ($Macinput1,GUICtrlRead($Input1))
	_IEFormElementSetValue ($Macinput2,GUICtrlRead($Input2))
	_IEAction ($Analizbutton,"click")
    Global $sHTML = _StringBetween(_IEBodyReadHTML($oIE), '<div class=["|]tip["|]>','</div>')
    GUICtrlSetData($Label4,$sHTML)
EndFunc
Cevapla