Я столкнулся с проблемой, когда мне нужно дважды щелкнуть элемент. При первом щелчке элемента он расширяет дерево на странице, второй раз закрывает дерево. При первом щелчке по элементу проблем не возникает.
Вот часть кода HTML, с которой я работаю: (Элемент, на который я нажимаю, является тегом 'a'.)
<div id="uasMainForm:uasTabs:0:agencyTree-d-rt-c" name="c">
<div title="" class="iceTreeRow" id="uasMainForm:uasTabs:0:agencyTree-d-4" name="nd">
<a id="uasMainForm:uasTabs:0:agencyTree:4" onclick="document.forms['uasMainForm']['uasMainForm:uasMainForm:uasTabs:0:agencyTree_idtn'].value='4';iceSubmitPartial( document.forms['uasMainForm'], this,event); return false;" onblur="setFocus('');" href="javascript:;">
Странная вещь: если я запускаю второй щелчок сразу после запуска первого, он прекрасно закрывает дерево, но если я разбиваю его с помощью MessageBox или какого-то другого кода, при попытке выполнить второй щелчок выдает ошибку.
Вот код, который работает:
agency = ie.ElementOfType<Div>(Find.ByText(agencyName));
agencyTab = agency.ElementWithTag("a", Find.ByIndex(0));
agencyTab.Click();
//MessageBox.Show("Hey!");
agencyTab.Click();
Вот код, который не работает:
agency = ie.ElementOfType<Div>(Find.ByText(agencyName));
agencyTab = agency.ElementWithTag("a", Find.ByIndex(0));
agencyTab.Click();
MessageBox.Show("Hey!");
agencyTab.Click();
Приведенный выше код выдает ошибку: Не удалось найти критерий соответствия тега элемента: Index = 0
Я также пробовал Find.ById вместо ByIndex с тем же результатом. Может ли кто-нибудь пролить свет на то, что может вызывать эту ошибку при разрыве двух событий щелчка, но не когда события щелчка происходят спина к спине?