1 (изменено: inseption86, 2019-01-26 15:59:36)

Тема: AHK: IE_com_checked

Добрый день! Имеется скрипт, но проблема в том, что  скрипт не определяет "if document.getElementsByTagName("input")[].checked = true, скорее всего потому что. IE пишет "Объект не поддерживает свойство или метод "closest"". Возможно ли это сделать через Silenium? (у меня получилось только залогиниться, MsgBox % driver.findElementsByName("li").item[1].Attribute("innerText") - ошибка ), либо этот как то допилить. Заранее спасибо!

<li data-bind="click: selectUser" class="selectedUser"><span data-bind="text: SurName">Смирнов</span>&nbsp;(&nbsp;<span data-bind="text: NTLogin">smirnovaa</span>&nbsp;)&nbsp;</li>

- document.getElementsByTagName("li")

<input type="checkbox" data-bind="checked: isAccessible, value: ID, click:editItem" value="16">

- document.getElementsByTagName("input")[11]

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
#SingleInstance force 


URL := "***"
ie := ComObjCreate("{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")
ie.Visible := true
ie.Navigate(URL)

while (ie.busy || ie.readyState <> 4)
  sleep 100


loop % ie.document.getElementsByTagName("li").lenght
{
ie.document.getElementsByTagName("li")[A_index].click()

if ie.document.getElementsByTagName("input")[11].checked = true {
ie.document.getElementsByTagName("input")[11].checked := false
}

if ie.document.getElementsByTagName("input")[12].checked = true {
ie.document.getElementsByTagName("input")[12].checked := false
}

if ie.document.getElementsByTagName("input")[13].checked = true {
ie.document.getElementsByTagName("input")[13].checked := false
}

sleep 500
}


MsgBox, 4160, , Готово!
Process, close, iexplore.exe
ExitApp

driver:= ComObjCreate("Selenium.CHROMEDriver") 
driver.Get("*****")
 
User = %username%
driver.findElementById("username").sendKeys(User)
 driver.findElementById("password").sendKeys("******")
  driver.findElementById("loginFormSubmit").click()

2

Re: AHK: IE_com_checked

решил проблему

if ie.document.getElementsByTagName("input")[].checked = -1 {
ie.document.getElementsByTagName("input")[].click()
}

3

Re: AHK: IE_com_checked

Добрый день! Подскажите пож-та возможно ли заменить

ie.document.getElementsByTagName("input")[].click()

   

<input type="checkbox" data-bind="checked: isAccessible, value: ID, click:editItem" value="16">

, т.к. click() не всегда срабатывает.

ie.document.getElementsByTagName("input")[].checked := false или true

  - при обновлении страницы возвращается в исходное состояние