2010-03-18 26 views
5

Sử dụng điều khiển trình duyệt web trong winForm. nhưng khi trang web được cập nhật bằng Ajax hoặc trong một khung, tôi không thể sử dụng webBrowser1.document.getElementById, v.v. để tìm rằng htmlElement. Phần tử cũng sẽ không hiển thị trong số View->Source code trong IE.Điều khiển trình duyệt web không thể tìm thấy htmlElement sau khi cập nhật trang web Ajax hoặc trong khung

Mục đích không chính thức là tìm thấy rằng htmlElement và mô phỏng một lần nhấp hoặc chức năng khác như invokeMember("staff").

Trả lời

1

Đối tượng tài liệu WebBrowser thực sự đại diện cho chế độ xem trực tiếp của DOM để có thể có một số lý do khác khiến bạn không thể tìm thấy nó. Tuy nhiên, các cập nhật DOM sẽ không được thể hiện trong View -> Source. Bạn nên sử dụng các công cụ phát triển của IE8 sẽ hiển thị cho bạn chế độ xem trực tiếp của DOM và có thể bạn sẽ thấy một cái gì đó giống như ID không chính xác/trùng lặp hoặc một cái gì đó.

0

Tôi đoán bạn đã giải quyết vấn đề này trên của riêng bạn, nhưng nếu bạn chưa có, hãy tham khảo câu hỏi của tôi ở đây: WebBrowser Control and GetElement by ID

Về cơ bản, nếu bạn làm điều gì đó để điều khiển WebBrowser (tức , thêm một số thành viên vào DOM) nó sẽ làm như vậy một cách không đồng bộ. Đó là, nó làm nó trên một sợi khác, theo cách đó nó tránh khóa thread gọi của bạn khi WebBrowser đang làm việc. Vấn đề là nếu bạn lập trình sửa đổi một cái gì đó với một lệnh, bạn sẽ phải đợi cho đến khi lệnh đó thực sự kết thúc tải các thay đổi của nó cho đến khi bạn có thể làm việc với kết quả của nó.

Kiểm tra câu hỏi của tôi ở đó để biết ví dụ về những gì tôi đang làm. Tôi hy vọng một người nào đó có thể tìm thấy các thử nghiệm trước đây của tôi hữu ích.

Các vấn đề liên quan