PDA

Показать полную графическую версию : [решено] Нужно Кликнуть по тексту в ИЕ


Russo
27-02-2010, 13:08
Нужна помощь! нужно кликнуть по тексту (см. приложеное изображение)
_IELinkClickByText не подходит по причине, что текст не единственный на странице,
_IELinkClickByIndex не подходит по причине, что index может меняться, в моем случае если очистить форму "Members you have blocked" или добавить в "Members you were blocked"

форма куда следует нажать имеет след. вид
[code]
<!-- start box Smiles sent to -->
<div class="DesignBox">
<h2 class="DesignBoxTitle">Smiles sent to</h2>
<table width=100% cellpadding="0" cellspacing="1" align=center border=0>
<tr><td>&nbsp;</td></tr>
<tr>
<form method=post name=form_kiss_del1>
<td width=50% valign=top align=center>
<table width=100% cellspacing=0 cellpadding="0" class=text align=center>
<tr>
<td class="head_td">
<table cellspacing=0 cellpadding="0" class=small2 width="100%">
<td>&nbsp;</td>
<td><img src="/templates/tmpl_nc/images_nc/out.gif"></td>
<td class=panel>&nbsp;Members you have sent smiles: 1</td>
</table>
</td>
</tr>
</table>
<table cellspacing="0" cellpadding="1" class="small" width="100%" align="center">
<tr class=table>
<td class="cc_td_1_border"><input type="checkbox" name="1000102258-1000221077"></td>
<td class="cc_td_2_border"><a href="profile.php?ID=1000221077">01479love</a></td>
<td align=right class="cc_td_2_border">1 time(s)</td>
<td align=center class="cc_td_2_border">2009-12-09 08:24:20</td>
<td align=center class="cc_td_3_1_border"><a href="vkiss.php?sendto=1000221077"><img border=0 src="/templates/tmpl_nc/images_nc/kiss.gif" alt="send smile"></td>


</tr>
</table>

<table class=text align=left>
<tr><td>&nbsp;<a href="javascript: void(0);" onclick="setCheckboxes( 'form_kiss_del1', true ); return false;">Check all</a> / <a href="javascript: void(0);" onclick="setCheckboxes( 'form_kiss_del1', false ); return false;">Uncheck all</a>&nbsp;</td><td align=left><input class=no type=submit name="submit_form_kiss_del1" value="Delete"></td></tr>
</table></td>
</form>
[code]

Sp01LeR
27-02-2010, 21:00
$oIE = _IECreate("http://www.сайт.ру/страница-c-формой.html")

$textString = "Check all"//текст ссылки
$formname = "form_kiss_del1"//имя формы
_IELinkClickByText($oIE, $textString)
$err_click_link = @error
Sleep(375)
_IEFormSubmit($oForm)
$err_click_submit = @error
ConsoleWrite("ClickLink error=" & $err_click_link & @CRLF)
ConsoleWrite("ClickSubmit error=" & $err_click_submit & @CRLF)

вот проверяй - должно сработать...

Russo
01-03-2010, 09:49
Спасибо за помощь и потраченное время, но что-то пока никак. может я что-то не то делаю....

Sp01LeR
01-03-2010, 21:03
сохрани страницу с формой на диск и залей куданибудь...

Russo
02-03-2010, 09:52
http://rapidshare.com/files/357736656/Desktop.zip.html

madmasles
02-03-2010, 11:14
Russo,
У меня получилось с Вашей страницей так:
#include <IE.au3>

$oIE = _IECreate ("Ваш сайт")
$oForm = _IEFormGetObjByName ($oIE, "submit_form_kiss_del1")
$colForms = _IEFormGetCollection($oIE)
$iForm = 0
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $oForm In (http://www.autoitscript.com/autoit3/docs/keywords.htm#In) $colForms
$colInputs = _IETagNameGetCollection($oForm, "input")
$iInput = 0
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $oInput In (http://www.autoitscript.com/autoit3/docs/keywords.htm#In) $colInputs
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $oInput.type = "checkbox" Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
_IEAction($oInput, 'click')
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
$oInput +=1
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
$oForm += 1
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
_IEFormSubmit($oForm)Т.е. сначала отмечаем все чекбоксы, потом нажимаем на нужную кнопку.
PS
У меня на Вашей странице, после клика на кнопке Delete, снимаются все чекбоксы.

Russo
02-03-2010, 11:56
спасибо за помощь! действительно нажимает на все чекбоксы, но вот кликать не хочет....:(

madmasles
02-03-2010, 12:59
Russo,
Попробуйте убрать $oForm = _IEFormGetObjByName ($oIE, "submit_form_kiss_del1"), и заменить _IEFormSubmit($oForm) на :For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $oForm In (http://www.autoitscript.com/autoit3/docs/keywords.htm#In) $colForms
$colInputs = _IETagNameGetCollection($oForm, "input")
$iInput = 0
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $oInput In (http://www.autoitscript.com/autoit3/docs/keywords.htm#In) $colInputs
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $oInput.type = "submit" And (http://www.autoitscript.com/autoit3/docs/keywords.htm#And) $oInput.name = "submit_form_kiss_del1" And (http://www.autoitscript.com/autoit3/docs/keywords.htm#And) _
$oInput.value = "Delete" Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
_IEAction($oInput, 'click')
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
$oInput += 1
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
$oForm += 1
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
У меня в той странице, которую Вы залили, работает и так, и так.

Russo
02-03-2010, 13:05
добавил в конце


$oInputs = _IETagNameGetCollection ($oIE, 'input')
For $oInput In $oInputs
If $oInput.type == 'submit' AND $oInput.name == "submit_form_kiss_del1" Then
_IEAction($oInput, 'click')
EndIf
Next


получилось
Всем спасибо за помощь!
Решено!




© OSzone.net 2001-2012