سؤال

في C #، تمكنت من الحصول على كامل htmldocumentclass من كائن InternetExPlorer (التنقل إلى عنوان URL معين).

ومع ذلك، في وضع تصحيح Visual Studio 2008، فإن محتوى هذا htmldocumentclass لهذا عنوان URL معين ضخم، بما في ذلك سمات مثل الأيسم، Alinkcolor، الكل، التطبيقات والأطباق والأطفال، الأطفال، إلخ، إلخ، إلخ، إلخ.

يوجد زر في تلك الصفحة التي أريد التغيير فيها بالنقر فوق "النقر". ولكن ليس لدي أي فكرة عن كيفية العثور على اسم / معرف / علامة هذا الزر. هناك برنامج تعليمي بسيط يستخدم عبارات مثل:

HTMLInputElement button =
  (HTMLInputElement)theDoc.getElementById("Button1");
button.click();

ولكن هيكل URL الخاص بي هو 100 مرة أكثر تعقيدا من ذلك.

دعنا نقول عنوان URL هو Yahoo.com، وأريد "النقر فوق" زر بحث الويب.

أي طريقة منهجية لهذا العمل؟

هل كانت مفيدة؟

المحلول

هذا يفترض أن تحكم WebBrowser الخاص بي في Yahoo. معرف زر البحث هو "SearchSubMit"

باستخدام Windows.Forms.htmldocument.

 HtmlElement button = (HtmlElement)htmlDoc.GetElementById("searchsubmit");
 button.InvokeMember("click");

إذا كنت تستخدم mshtml و htmlinputelement

   HTMLDocument htmlDoc = new HTMLDocumentClass();
    htmlDoc = (HTMLDocument)axWebBrowser1.Document;

   //find the search text box..
   HTMLInputElement searchTextBox = (HTMLInputElement)htmlDoc.all.item("p", 0);
   searchTextBox.value = "Stack Overflow";

   //find the button
   HTMLInputElement searchButton = (HTMLInputElement)htmlDoc.all.item("searchsubmit", 0);
   searchButton.click();

إذا نظرت إلى مصدر ياهو، فسترى أن مربع نص البحث ضمن Divs متعددة. htmldoc.all.Item. يعتني به.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top