重复该作业,而不重复为每个值键入脚本

时间:2013-08-05 15:41:36

标签: autoit

我有这个自动脚本工作正常,但我怎么能让它重复工作而不重复输入每个值的脚本?

Value1 = usernameA使用passwordA

Value2 = usernameB使用passwordB

Value3 = usernameC使用passwordB

#include <IE.au3>
$oIE = _IECreate ("www.site.com/login")

$username = _IEGetObjByName ($oIE, "q_username")
$id = _IEGetObjByName ($oIE, "q_username")
$password = _IEGetObjByName ($oIE, "q_password")
$id = _IEGetObjByName ($oIE, "q_password")
$button1 =  _IEGetObjByName ($oIE, "login")

_IEPropertySet($username, 'innerText', 'usernameA')
_IEPropertySet($id, 'innerText', 'usernameA')
_IEPropertySet($Password, 'innerText', 'passwordA')
_IEPropertySet($id, 'innerText', 'passwordA')
_IEAction ($button1,"click")

我不希望它像这样!

#include <IE.au3>

$oIE = _IECreate ("www.site.com/login")
$username = _IEGetObjByName ($oIE, "q_username")
$id = _IEGetObjByName ($oIE, "q_username")
$password = _IEGetObjByName ($oIE, "q_password")
$id = _IEGetObjByName ($oIE, "q_password")
$button1 =  _IEGetObjByName ($oIE, "login")

_IEPropertySet($username, 'innerText', 'usernamea')
_IEPropertySet($id, 'innerText', 'usernameA')
_IEPropertySet($Password, 'innerText', 'passworA')
_IEPropertySet($id, 'innerText', 'passwordA')
_IEAction ($button1,"click")

$oIE = _IECreate ("www.site.com/login")
$username = _IEGetObjByName ($oIE, "q_username")
$id = _IEGetObjByName ($oIE, "q_username")
$password = _IEGetObjByName ($oIE, "q_password")
$id = _IEGetObjByName ($oIE, "q_password")
$button1 =  _IEGetObjByName ($oIE, "login")

_IEPropertySet($username, 'innerText', 'usernameB')
_IEPropertySet($id, 'innerText', 'usernameB')
_IEPropertySet($Password, 'innerText', 'passwordB')
_IEPropertySet($id, 'innerText', 'passwordB')
_IEAction ($button1,"click")

$oIE = _IECreate ("www.site.com/login")
$username = _IEGetObjByName ($oIE, "q_username")
$id = _IEGetObjByName ($oIE, "j_username")
$password = _IEGetObjByName ($oIE, "q_password")
$id = _IEGetObjByName ($oIE, "q_password")
$button1 =  _IEGetObjByName ($oIE, "login")

_IEPropertySet($username, 'innerText', 'usernameC')
_IEPropertySet($id, 'innerText', 'usernameC')
_IEPropertySet($Password, 'innerText', 'passwordC')
_IEPropertySet($id, 'innerText', 'passwordC')
_IEAction ($button1,"click")

还有如何让它在完成后回到脚本的第一行?

1 个答案:

答案 0 :(得分:0)

使用功能:

#include <IE.au3>

Func TestPassword($user, $pass)
    $oIE = _IECreate ("www.site.com/login")

    $username = _IEGetObjByName ($oIE, "q_username")
    $id = _IEGetObjByName ($oIE, "q_username")
    $password = _IEGetObjByName ($oIE, "q_password")
    $id = _IEGetObjByName ($oIE, "q_password")
    $button1 =  _IEGetObjByName ($oIE, "login")

    _IEPropertySet($username, 'innerText', $user)
    _IEPropertySet($id, 'innerText', $user)
    _IEPropertySet($Password, 'innerText', $pass)
    _IEPropertySet($id, 'innerText', $pass)

    _IEAction ($button1,"click")
EndFunc


TestPassword('usernameA', 'passwordA');
TestPassword('usernameB', 'passwordB');
TestPassword('usernameC', 'passwordC');

你甚至可以制作一个数组并使用For...In...迭代它:

$credentials[0]['user'] = 'usernameA';
$credentials[0]['pass'] = 'passwordA';
$credentials[1]['user'] = 'usernameB';
$credentials[1]['pass'] = 'passwordB';

For $cred In $credentials
    TestPassword($cred['user'], $cred['pass']);
Next