Что нового

Клики по элементам

ildar67

Новичок
Сообщения
10
Репутация
1
Здравствуйте. Появилась такая задача, сделать клик по элементу, если коэффициент меньше 1.5, причем искать надо не по всем столбцам, а только по первым двум, как на скриншоте и если клик был сделан, то клик в этой строке больше не делается, либо удалить строку. Autoit начал изучать недавно и моих знаний пока хватило на такой код, но он ищет и кликает по всем столбцам и удаляет не строку а элемент по которому был клик
Код:
#include "IE.au3"
$oIE = _IECreate('https://www.fonbet.kz/#!/live/tennis')
test()
Func test()
    While Sleep(1000)
        $iLength = $oIE.document.getElementsByClassName('table__col _type_btn _type_normal').length
        ConsoleWrite('Найдено ' & $iLength & ' div`ов' & @CRLF)
            For $iNumber = 0 To 1000 - 1
                $oElem = $oIE.document.getElementsByClassName('table__col _type_btn _type_normal').item($iNumber)      ; Ищем div под нужным номером
                If Not IsObj($oElem) Then ExitLoop ;MsgBox(4096, 'Ошибка', 'Не найден div #' & $iNumber)
                If $oElem.innerText < 1.5  Then
                    Sleep(1000)
                    $oElem.click()
                    $oElem.RemoveNode(True)
                EndIf
            Next
    WEnd
EndFunc
 

Вложения

  • 2020-02-23_14-20-44.png
    2020-02-23_14-20-44.png
    36.6 КБ · Просмотры: 21

gunter123

Продвинутый
Сообщения
159
Репутация
69
Код:
#include "IE.au3"
$oIE = _IECreate('https://www.fonbet.kz/#!/live/tennis')

While Sleep(1000)
   For $oElem In $oIE.document.getElementsByClassName('table__row')        ; Берем каждую строку
      ; Отсеиваем строки, в которых нет элементов, показывающих фору, или если строка уже имеет класс isclicked
      If Not $oElem.querySelectorAll('.table__col._type_fora').length Or $oElem.classList.contains('isclicked') Then ContinueLoop

      $oColumns = $oElem.querySelectorAll('.table__col._type_btn')         ; Все колонки в строке $oElem
      If $oColumns.item(0).innerText > 0 And $oColumns.item(0).innerText < 1.5 Then    ; Проверяем первую ячейку
         $oColumns.item(0).focus()
         $oColumns.item(0).click()
         $oElem.classList.add('isclicked')        ; Если кликнули, добавим класс isclicked родительской строке
      ElseIf $oColumns.item(1).innerText > 0 And $oColumns.item(1).innerText < 1.5 Then    ; Проверяем вторую ячейку
         $oColumns.item(1).focus()
         $oColumns.item(1).click()
         $oElem.classList.add('isclicked')        ; Если кликнули, добавим класс isclicked родительской строке
      EndIf
   Next
WEnd
 
Автор
I

ildar67

Новичок
Сообщения
10
Репутация
1
gunter123, спасибо огромное
Сообщение автоматически объединено:

Можно ли реализовать такую задачу? При развернутых дополнительных ставках если встречается элемент с innerText(00*-00) кликаем по первому столбцу класса 'table__grid-row' (геймы) и проверяем дальше в цикле все события

2020-02-27_22-36-25.png
Сообщение автоматически объединено:

как сделать чтобы клик осуществялся не по всем, а только по первому ('table__row') матча, где стоит название, без 1-й сет, 1- тайм, куда копать? В селениуме делал поиск по xpath: driver.find_elements_by_xpath("//td[contains(@class,'_indent_1')]/../td[contains(@class,'_type_btn')][1]")
 
Последнее редактирование:
Верх