HtmlElement.invoke («click») не работает - PullRequest
2 голосов
/ 08 августа 2011

Я пытаюсь создать приложение, которое может автоматически заполнять HTML-форму, используя элемент управления WebBrowser (C #). На веб-странице есть список опций, и я могу получить соответствующие элементы в выпадающем списке. Но когда я вызываю методы invokemember("click"), отклика нет. Ниже в элементе выделения HTML

<div>
class="ddlcont" style="display: block; width: 150px; top: 414px; left: 790.75px;">   
<a class="select" v="0" href="javascript:;">Not </a>
<a v="419000" href="javascript:;">insure</a></div>

Вот мои коды, я считаю ScrollIntoView и Focus метод в порядке

HtmlElementCollection element_div=currentWindow.Frames[0].Document.GetElementsByTagName ("div");

foreach (HtmlElement item in element_div)
{
    if (item.GetAttribute("classname") == "ddlcont" && item.Children.Count !=0)
    {
        item.Children[1].ScrollIntoView(true);
        item.Children[1].Focus();
        item.Children [1].SetAttribute("selected", "true");
        item.Children [1].InvokeMember("Click");                    
    }  
}

Я ценю это, если кто-нибудь может помочь мне решить проблему. Спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 08 августа 2011

Попробуйте что-то вроде этого:

Button1.GetType().GetEvent("OnClick").GetRaiseMethod().Invoke(Button1, EventArgs.Empty);

Возможно, вам придется немного изменить синтаксис, но это должно привести вас на правильный путь.

0 голосов
/ 08 августа 2011

Возможно, вы вставили неправильно, но в вашем примере div не имеет class.
Взгляд:

<div>
class="ddlcont" style="display: block; width: 150px; top: 414px; left: 790.75px;">  

должно быть

<div
class="ddlcont" style="display: block; width: 150px; top: 414px; left: 790.75px;">  

(нет > в первой строке)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...