Управление C# WebBrowser — Получает Элементы Документа После Ajax?

1/3 использует целочисленное деление, поскольку обе стороны являются целыми числами.

Вам нужно, по крайней мере, одно из них быть float или double.

Если вы входите значения в исходном коде, такие как ваш вопрос, вы можете сделать 1.0/3; 1.0 является двойным.

Если вы получите значения из других источников, вы можете использовать (double), чтобы int превратить int в double.

int x = ...;
int y = ...;
double value = ((double) x) / y;
20
задан Andy 11 March 2009 в 19:32
поделиться

6 ответов

Необходимо будет использовать DOM для него. Бросьте WebBrowser. Документ. DomDocument к IHTMLDocument?. Необходимо будет импортировать некоторые COM-интерфейсы или блок Microsoft.mshtml.

Взгляните на http://msdn.microsoft.com/en-us/library/aa752641 (По сравнению с 85) .aspx для получения дополнительной информации.

3
ответ дан 30 November 2019 в 00:43
поделиться

Я предполагаю, что, так как Вы читаете содержание, которое сгенерировано от Ajax, запрашивает потребовать, чтобы пользователь прогрессировал приложение до точки, где соответствующие данные загружаются, в которой точке Вы выполняете код для чтения данных.

Если это не так необходимо будет автоматизировать этот процесс, генерируя события щелчка, которые пристраивают узлы DOM, Вы интересуетесь чтением. Я делаю это несколько обычно с WebBrowser управляет и имеет тенденцию писать, что слой функциональности в JavaScript и называет его с.InvokeScript (). Другой маршрут должен был бы найти узлы, которые запускают функциональность Ajax из C# и вручную инициировали их события щелчка:

HtmlElement content = webMain.Document.GetElementById("content");
content.RaiseEvent("onclick");

Важным аспектом для замечания в сценарии выше является то, что можно взаимодействовать с узлами DOM наивно в C#, если Вы принимаете и работаете вокруг ограничений типа объекта HtmlElement.

2
ответ дан 30 November 2019 в 00:43
поделиться

Вы управляете веб-страницей?

Если так, вот сообщение в блоге, которое объясняет как: http://www.palladiumconsulting.com/blog/sebastian/2007/04/ultimate-intranet-toy.html

В противном случае существует, вероятно, решение, но я не могу помочь Вам, извините.

-1
ответ дан 30 November 2019 в 00:43
поделиться

Как о запуске javascript для подписи элемента и отображения его в новом окне?

Я не тестировал это, но может работать.

(WebBrowser)w.Navigate("javascript:GetElementById('div').innerHtml;", true);

Атрибут true для открытия возврата в новых окнах. (Или фрейм, или, может быть, вы можете найти лучший способ)

Чтобы записать событие NewWindow, вам необходимо сослаться на SHDocVw.dll, который находится в вашей папке Windows / System32. Затем вы можете преобразовать ваш WebBrowser Control следующим образом:

SHDocVw.WebBrowser_V1 browser = (SHDocVw.WebBrowser_V1)(WebBrowser)w.ActiveXInstance;

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

0
ответ дан 30 November 2019 в 00:43
поделиться

Информация отсутствует в WebBrowser.DocumentText? http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.documenttext.aspx

0
ответ дан 30 November 2019 в 00:43
поделиться
using System;
using System.Windows.Forms;

namespace WebBrowserDemo
{
    class Program
    {
        public const string TestUrl = "http://www.w3schools.com/Ajax/tryit_view.asp?filename=tryajax_first";

        [STAThread]
        static void Main(string[] args)
        {
            WebBrowser wb = new WebBrowser();
            wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);
            wb.Navigate(TestUrl);

            while (wb.ReadyState != WebBrowserReadyState.Complete)
            {
                Application.DoEvents();
            }

            Console.WriteLine("\nPress any key to continue...");
            Console.ReadKey(true);
        }

        static void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            WebBrowser wb = (WebBrowser)sender;

            HtmlElement document = wb.Document.GetElementsByTagName("html")[0];
            HtmlElement button = wb.Document.GetElementsByTagName("button")[0];

            Console.WriteLine(document.OuterHtml + "\n");

            button.InvokeMember("Click");

            Console.WriteLine(document.OuterHtml);           
        }
    }
}
5
ответ дан 30 November 2019 в 00:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: