InvokeMember("click") в элементе управления WebBrowser
Веб-сайт показывает таблицы на выбор вариантов. HTML
является
<td width="33%" class="cont"><input type="radio" name="gatewayIDV" onclick="setBank(11,0,1)">
<td width="33%" class="cont"><input type="radio" name="gatewayIDV" onclick="setBank(3,0,1)">
Я хочу вызвать клик радио строки "setBank(11,0,1)". Как я? все радио названия одинаковы, но onclick()
Параметр другой.
в JavaScript кто-то делает этот код здесь, но как я делаю это в C#
Я пытаюсь это, но никогда не работает:
if (webBrowser1.DocumentText.IndexOf("setBank(11,0,1)", StringComparison.InvariantCultureIgnoreCase) > 1)
{
webBrowser1.Document.GetElementById("gatewayIDV").InvokeMember("click");
}
JavaScript:
$("td.cont").each(function(index) {
var $this = $(this);
var gonext = true;
if($this.html().search(searchStr) != -1) {
$(document).BookingEngine("setAutomationRunningStatus",
!tabData.automationRunning);
console.log(index+":"+$this.html()+":");
$this.children("input[name='gatewayIDV']").click();
gonext = false;
}
return gonext;
});
1 ответ
Решение
У вас есть многокнопочный ввод, вы должны пройти через них, попробуйте это:
private void Form1_Load_1(object sender, EventArgs e)
{
webBrowser1.Navigate("url");
}
private void webBrowser1_DocumentCompleted_1(object sender, WebBrowserDocumentCompletedEventArgs e)
{
foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("input"))
{
if (el.Name == "gatewayIDV")
{
el.InvokeMember("Click");
}
}
}
отредактированный
Для конкретного переключателя
private void Form1_Load_1(object sender, EventArgs e)
{
webBrowser1.Navigate(@"E:\Documents and Settings\Ali\Desktop\ww.html");
}
private void webBrowser1_DocumentCompleted_1(object sender, WebBrowserDocumentCompletedEventArgs e)
{
foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("input"))
{
if (el.Name == "gatewayIDV" && el.OuterHtml.Contains("setBank(11,0,1)"))
{
el.InvokeMember("Click");
}
}
}