2013-12-17 5 views
3

Я создаю утилиту очистки экрана, чтобы автоматизировать население устаревших веб-форм. После изучения Selenium и других систем автоматизации я решил просто использовать элемент управления C# WebBrower, и пока он прост в использовании и работает хорошо. Однако одна из веб-форм использует навигационную панель, управляемую java, которую я не могу контролировать, как я бы хотел с элементами html. Поэтому мой план состоит в том, чтобы найти координаты экрана различных элементов навигации и имитировать щелчки мыши.Имитация щелчка мыши в управлении веб-браузером

Я нашел несколько релевантных сообщений и попробовал что-то вроде этого (код ниже). Однако это не сработает, и я не могу понять, почему. Я пробовал передавать дескрипторы как для элемента управления WebBrowser, так и для его родительской формы в вызове ClickOn(), но не работает. Я смотрел на него с помощью Spy ++, и кажется, что никакие сообщения не запускаются. Кто-нибудь знает, что может быть виновником?

Кроме того, я должен добавить, что Java еще не задействован. Я просто пытаюсь щелкнуть по кнопке html в этот момент, чтобы проверить метод ClickOn.

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 

     browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(onDocLoaded); 
    } 

    private void onLoad(object sender, EventArgs e) 
    { 
     browser.Navigate(@"http://www.dummysite.com/"); 
    } 

    void onDocLoaded(object sender, WebBrowserDocumentCompletedEventArgs e) 
    { 
     ClickOn(browser.Handle, 899, 463); 
    } 

    [DllImport("user32.dll", EntryPoint = "PostMessage", CharSet = CharSet.Auto)] 
    static extern bool PostMessage1(IntPtr hWnd, uint Msg, 
     int wParam, int lParam); 

    private void ClickOn(IntPtr hControl, int x, int y) 
    { 
     uint WM_LBUTTONDOWN = 0x0201; 
     uint WM_LBUTTONUP = 0x0202; 
     PostMessage1(hControl, WM_LBUTTONDOWN, x, y); 
     PostMessage1(hControl, WM_LBUTTONUP, x, y); 
    } 
} 

ответ

0

попытка вызова ClickOn из JavaScript после события window.load

Смежные вопросы