Что нового

Нажатие на одну из одинковых кнопок

Dk

Новичок
Сообщения
358
Репутация
2
Версия AutoIt: 3.

Описание:
Вот сайт httрs://www.amazon.de/gp/offer-listing/3131317523/ref=dp_olp_used?ie=UTF8&condition=used

Мне нужно нажать "In den Einkaufswagen". Проблема в том, что у меня получается нажать только на самую первую кнопку.
Иногда мне нужно нажать на другую.
Мне нужно что-бы программа считывала все кнопки в массив (переменную к примеру $button[0], $button[1] ...), что бы я мог в дальнейшем выбрать и нажать.

Заранее спасибо за помощь.
 

Anna

Новичок
Сообщения
119
Репутация
2
Dk
Клик по второй кнопке.
Код:
#include <IE.au3>

$oIe = _IECreate("https://www.amazon.de/gp/offer-listing/3131317523/ref=dp_olp_used?ie=UTF8&condition=used")
$oIe.document.getElementsByClassName("a-button-input").item(1).click() ; изменяйте индекс item(2), item(3)
 
Автор
D

Dk

Новичок
Сообщения
358
Репутация
2
Anna сказал(а):
Dk
Клик по второй кнопке.
[hide]
Код:
#include <IE.au3>

$oIe = _IECreate("https://www.amazon.de/gp/offer-listing/3131317523/ref=dp_olp_used?ie=UTF8&condition=used")
$oIe.document.getElementsByClassName("a-button-input").item(1).click() ; изменяйте индекс item(2), item(3)

[/hide]
[hide]
[/hide]
Работает! Огромное вам спасибо)
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Код:
$sURL = "https://www.amazon.de/gp/offer-listing/3131317523/ref=dp_olp_used?ie=UTF8&condition=used"

$oIE = _IECreate($sURL)

If _ClickButton($oIE, 1) Then ; первая кнопка
   MsgBox(0, "", "Button clicked!")
Else
   MsgBox(16, "", "Button not found!")
EndIf

Func _ClickButton($oIE, $iIndex)

   Local $oInputs = _IEGetObjByName($oIE, "submit.addToCart", -1)
   Local $iExt = @extended

   For $oInput In $oInputs
	  If StringInStr($oInput.GetAttribute("aria-labelledby"), $iIndex - 1) Then
		 _IEAction($oInput, "click")
		 Return SetError(0, $iExt, 1)
	  EndIf
   Next
   Return SetError(1, $iExt, 0)
EndFunc ;==>_ClickButton
 
Верх