2015-09-17 3 views
0

Я работаю над автоматизацией ввода данных на веб-страницу интрасети. Я имел успех с этим типом кода в прошлом, чтобы щелкнуть флажки, но не смог заставить его работать над знаками плюса, которые расширяют строки. В приведенном ниже коде ничего не происходит, никаких ошибок не возникает, код просто запускается, конечно.Автоматический щелчок (расширение) плюс знаки в Internet explorer

Вот мой код:

Set div = IE.document.getElementsByTagName("div") 

For Each i In div 
    'showExpand? 
    If i.id Like "iconShowA*" Then 
     If i.onclick = "showExpand(*)" Then 
      i.Click'Click plus sign 
      v = Replace(i.id, "iconShowA", "") 
      col.Add v 'store the numeric part 
     End If 
    End If 
Next i 

For Each v In col 
    Debug.Print v 
Next v 

Соответствующие HTML линии:

(То, что я пытаюсь нажать, может быть переменное число из них с другим числовым идентификатором «iconShowA (х) ")

<div id="iconShowA34" class="ui-icon ui-icon-plusthick" onclick="showExpand('34','34')" ;="" style="display: block;"></div> 

(я также необходимо, чтобы избежать нажатия этих)

<div id="iconShowA_N4" class="ui-icon ui-icon-plusthick" onclick="showExpandSub('4','4')" ;=""></div> 
+0

Так в чем же проблема? Вы получаете сообщение об ошибке? Разве это ничего не делает? Нажимает ли вы то, что вы не хотите нажать? – Bond

ответ

0

Приведенный ниже код смог достичь желаемых результатов. Мне не удалось создать соглашение TagName. Этот метод использует getElementByID для навигации по веб-странице. Казалось, важно использовать полный идентификатор, поэтому я использовал цикл Do While для повторения чисел, которые были возможными числами, используемыми в соглашении об именах идентификаторов.

n = DateDiff("ww", firstDate, secondDate)'Determines number of plus' to click 
v = 0 'Counter for plus click event 
x = 6 ' starting value for numerical piece of Id 


Do While n > v 'continue loop until all plus' have been clicked 
Set div = IE.document.getElementById("iconShowA" & x) 'Id must be defined completely to click 
    If div Is Nothing Then 'tests if element exists 
     x = x + 7 
    Else 
     div.Click 'clicks an element that exists 
     v = v + 1 
     x = x + 7 'iterates id number by 7 as that is convention of website 
    End If 
Loop 
Смежные вопросы