我是脚本的新手,我编写的东西会将我登录到我的脸书,并转到朋友的墙上并为他们发布内容。我被困在最后一部分。我无法获得按钮的对象名称" post"。
有人可以帮我完成我的代码吗?
#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
这是我在&#34; post&#34;上点击inspect元素时得到的代码。按钮:
<button class="_42ft _4jy0 _11b _4jy1 selected _51sy"
type="submit" value="1" data-ft="{"tn":"+{"}">Post</button>
我认为这是我遇到问题的路线:
"local $toSubmit = _IEGetObjectType($oIE, "submit")"
答案 0 :(得分:2)
为此你需要自己动手。
您需要列出所有按钮,然后搜索“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中的第一个参数。