Я новичок в скриптах, и я пишу что-то, что войдет в мой фейсбук, зайдет на стену друзей и напишет что-нибудь для них. Я застрял в последней части. Я не могу получить название объекта кнопки «пост».
Может ли кто-нибудь помочь мне завершить мой код?
#include <IE.au3>
Call("fcb")
Func fcb()
Global $oIE = _IECreate("https://www.facebook.com/")
local $userName = _IEGetObjByName($oIE, "email")
local $passWord = _IEGetObjByName($oIE, "pass")
local $log = _IEGetObjById($oIE, "loginbutton")
_IEFormElementSetValue($userName,"myemail")
_IEFormElementSetValue($passWord,"mypasscode")
_IEAction($log,"click")
EndFunc
Call("fcb2")
Func fcb2()
Global $oIE = _IECreate(https://www.facebook.com/myfriednspage)
local $box = _IEGetObjById($oIE, "u_0_1a")
_IEAction($box,"click")
local $typeInWall = _IEGetObjById($oIE, "u_0_1a")
_IEFormElementSetValue($typeInWall,"hi ugly")
local $toSubmit = _IEGetObjectType($oIE, "submit")
_IEAction($toSubmit,"click")
EndFunc
Вот код, который я получаю, когда нажимаю кнопку «проверить» на кнопке «отправить»:
<button class="_42ft _4jy0 _11b _4jy1 selected _51sy"type="submit" value="1" data-ft="{"tn":"+{"}">Post</button>
Я думаю, что это линия, с которой у меня проблемы:
"local $toSubmit = _IEGetObjectType($oIE, "submit")"
Для этого вам нужно будет сделать свою собственную функцию.
Вам нужно перечислить все кнопки, а затем искать одну с «Post» в качестве innertext.
Что-то вроде этого:
$oPostBtn = _IEGetObjByText($oIE, "button", "Post")
$oPostBtn.click
Func _IEGetObjByText($oObj, $tag, $text)
Local $oButtons = _IETagNameGetCollection($oObj, $tag)
For $oButton In $oButtons
if $oButton.innertext == $text Then Return SetError(0, 0, $oButton)
Next
Return SetError(1, 0, False)
EndFunc
Обратите внимание, что на странице может быть более одной кнопки «Опубликовать». Самый безопасный способ — сузить поиск до объекта формы. Вы найдете нужную форму и используете этот объект в качестве первого параметра в IEGetObjByText.
Других решений пока нет …