JavaScript — я пишу скрипт с помощью AutoIt V3, и у меня возникают проблемы с поиском & quot; имени объекта & quot; когда я проверяю элемент

Я новичок в скриптах, и я пишу что-то, что войдет в мой фейсбук, зайдет на стену друзей и напишет что-нибудь для них. Я застрял в последней части. Я не могу получить название объекта кнопки «пост».

Может ли кто-нибудь помочь мне завершить мой код?

#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")"

1

Решение

Для этого вам нужно будет сделать свою собственную функцию.

Вам нужно перечислить все кнопки, а затем искать одну с «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.

2

Другие решения

Других решений пока нет …