Tôi đang cố gắng tạo một phần mềm để tự động hóa nhiều hình thức điền trên trang web - và tôi đã quyết định sử dụng điều khiển WebBrowser trong System.Windows.Forms
. Điều này làm việc tuyệt vời và tôi có thể dễ dàng thao tác các DOM thông qua webbrowser.Document
và vv. Tuy nhiên tiếc là trang web mà tôi đang thực hiện tự động hóa có tệp tải lên được chạy bên trong khung nội tuyến - và đây là nơi tôi bị kẹt, tôi chỉ đơn giản là không thể biết cách xử lý các phần tử bên trong DOM của khung nội tuyến.Windows Forms WebBrowser kiểm soát và iframe
Lý tưởng nhất là những gì tôi muốn làm là một cái gì đó như:
HtmlElement iframe = browser.Document.GetElementById("iframe_id");
iframe.InnerDocument.GetElementById("file_upload_input").SetAttribute("value", "myfile.txt");
Và sau đó gửi biểu mẫu bên trong iframe tất nhiên - tuy nhiên không có InnerDocument
thuộc tính trên HtmlElement
như xa như tôi có thể nhìn thấy, cũng không không có loại mà tôi đã tìm thấy rằng tôi có thể đúc HtmlElement
để tôi có thể truy cập DOM bên trong.
Cách thực hiện việc này?
Aha - đó là điều tôi đã quên. Một điều cần lưu ý ở đây là mã bạn đăng ở đây là javascript - mã tương ứng cần thiết cho điều khiển WebBrowser là browser.Document.Window.Frames ["frame"] để lấy phần tử iframe. – kastermester
@kastermester không có .Window dưới browser.document (chỉ cần kiểm tra theo đối tượng trực tiếp) và mã trên không hoạt động (trong VB6 anyway). là có một sự khác biệt giữa .frames [...] và .frames (...) ?? vì vậy (hoặc [tạo sự khác biệt? ive đã thử cả hai không có kết quả. –