Что нового

[Автоматизация] Клик по кнопке в IE зная class и название

Dere

Новичок
Сообщения
30
Репутация
2
Прошу прощения если повторяюсь, в поиске не нашел подобный пример, а опыты не приводят к положительному результату.
Вот решил попросить совета бывалых. Вопрос не сложный.
Есть Кнопка с названием, название может меняться.
Нужно кликнуть на кнопку "Собрать"
вот строка определения в ConsoleWrite: <DIV class=btn-cont><SPAN>Собрать</SPAN>
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
$oIe.document.querySelector('.btn-cont').click()
 
Автор
D

Dere

Новичок
Сообщения
30
Репутация
2
Кнопок с таким началом "<DIV class=btn-cont>" может быть много на странице, а вот название кнопок разные. Нужно Кликнуть на определенную с данным названием
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
$elements = $oIe.document.getElementsByTagName('div')
If Not IsObj($elements) Then Exit ;!

For $element In $elements
	If Not IsObj($element) Then ContinueLoop
	If String($element.innerText) And StringStripWS($element.innerText,8) = 'Собрать' Then
		$element.click()
		ExitLoop
	EndIf
Next



Добавлено:
Сообщение автоматически объединено:

Или так, перечисляем только элементы с этим классом:
Код:
$elements = $oIe.document.querySelectorAll('.btn-cont')
If Not IsObj($elements) Then Exit ;!

For $i = 0 To $elements.length - 1
	$element = $elements.item($i)
	If Not IsObj($element) Then ContinueLoop
	If String($element.innerText) And StringStripWS($element.innerText, 8) = 'Собрать' Then
		$element.click()
		ExitLoop
	EndIf
Next



Добавлено:
Сообщение автоматически объединено:

querySelectorAll и querySelector не будут работать, если IE старый или работает в режиме совместимости. Версия должна быть больше 7.
 
Автор
D

Dere

Новичок
Сообщения
30
Репутация
2
Первый вариант ошибок не выдал, но и кнопку не нажал.
Второй вариант выдал ошибку "$elements = $oIe.document.querySelectorAll('.btn-cont')^ ERROR" - эксплорер 8.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Dere
хз тогда. Вариантов других нет.
 
Автор
D

Dere

Новичок
Сообщения
30
Репутация
2
А если вот так - кусок ХТМЛ кода, нужно нажать на кнопку "В набег". Сразу прошу прощения - забыл как обрамлять код.
Код:
<TABLE border=0 cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=88><A href="/Invasion"><IMG alt="" src="/images/widgets/nabeg_80x80.png" width=80 height=80></A> </TD>
<TD vAlign=top>
<DIV class=ml7>
<DIV class=subtitle><A class=subtitle href="/Invasion">Набеги</A> </DIV>
<DIV class=mt5>Нападай на владения и получай ценные трофеи, ключи и артефакты! </DIV></DIV><A class="btn mt10" href="/Invasion">
<DIV class=btn-icon></DIV>
<DIV class=btn-top></DIV>
<DIV class=btn-cont><SPAN>В набег</SPAN> </DIV>
<DIV class=btn-bot></DIV></A></TD></TR></TBODY></TABLE><!--LEAGUE PROGRESS-->
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Dere [?]
А если вот так - кусок ХТМЛ кода, нужно нажать на кнопку "В набег".
Можно же сделать по аналогии? Вы пробовали? Вместо Собрать подставить В набег? Если пишите, значит пробовали и оно не заработало, то значит на этот DIV который выглядит как кнопка, навешено другое событие, может там mousedown или hover какой-то. Это вам уже нужно самому разобраться.
И лучше IE8 обновить до IE11, зачем вам этот 8 недобраузер..
 
Верх