سؤال

أنا أفعل بعض أتمتة العمل يمكن أن تجعل طريقي موقع & post HTML أشكال حسنا, ولكن الآن أنا أمام تحد جديد ، اياكس أشكال.

منذ ليس هناك مصدر القراءة ، أنا أتساءل إذا كان من الممكن أن ملء في شكل اياكس progamatically في C#.أنا حاليا باستخدام غير مرئية axWebBrowser.

شكرا مقدما على مساعدتكم!

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

المحلول

نعم, ولكن أوصي باستخدام نهج مختلف طلب/الاستجابة إلى صفحات الملقم بما في ذلك صفحات العادية ، و اياكس معالج الصفحات.

في c#, حاول استخدام WebRequest/WebResponse أو أكثر تخصصا HttpWebRequest/HttpWebResponse الطبقات.

اياكس هو ليس أكثر من "الهوى" اسم على التكنولوجيا التي تسمح جافا سكريبت لجعل طلبات HTTP إلى ملقم والتي عادة ما تنفذ بعض معالجات التي تنتج المتخصصة ، خفيفة الوزن محتوى جافا سكريبت المتصل (comonly ترميز JSON).

ولذلك من أجل محاكاة المكالمات اياكس, كل ما عليك فعله هو تفقد الهدف الخاص بك التطبيق (صفحة ويب التي كنت تريد أن "ما بعد" إلى) و انظر ما هو تنسيق يستخدم اياكس الاتصالات - ثم تكرار الصفحة جافا سكريبت السلوك من C# باستخدام WebREquest/WebResponse الطبقات.

انظر الحرائق - أداة عظيمة التي تسمح لك لمعاينة صفحة ويب لتحديد ما يدعو يجعل الذي الصفحات و ما تلك الصفحات الاستجابة.فإنه يقوم بعمل جيد جدا في فحص المكالمات اياكس أيضا.

هنا مثال بسيط جدا عن كيفية القيام طلب ويب:

HttpWebRequest wReq = (HttpWebRequest)WebRequest.Create("http://www.mysite.com");

using (HttpWebResponse resp = (HttpWebResponse)wReq.GetResponse())
{
   // NOTE: A better approach would be to use the encoding returned by the server in
   // the Response headers (I'm using UTF 8 for brevity)
   using (StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.UTF8))
   {
       string content = sr.ReadToEnd();
       // Do something with the content
   }
}    

وظيفة هو أيضا طلب, لكن مع اختلاف في الأسلوب.انظر هذه الصفحة للحصول على مثال عن كيفية القيام بسيط جدا بعد.

تحرير - تفاصيل على تفتيش الصفحة السلوك مع الحرائق

ما أعنيه من خلال التفتيش على الصفحة التي تحاول تكرار استخدام أداة (يمكنني استخدام الحرائق - على فايرفوكس) لتحديد تدفق المعلومات بين صفحة الملقم.

مع الحرائق, يمكنك القيام بذلك عن طريق استخدام "صافي" و "وحدة التحكم" لوحات.صافي الفريق قوائم جميع الطلبات المنفذة من قبل المتصفح أثناء تحميل الصفحة.في حين أن "وحدة التحكم" قائمة الاتصالات بين الصفحة و الخادم التي تجري بعد أن تم تحميل الصفحة.هذه الاتصالات التي تجري بعد أن تم تحميل الصفحة هي أساسا اياكس المكالمات التي سوف تحتاج إلى تكرار (ملاحظة:شبكة الرصد enbled في الحرائق لهذا العمل)

تحقق من مايكل مزامنة البرنامج التعليمي لمعرفة المزيد عن الحرائق و التجربة مع لوحة التحكم لمعرفة المزيد عن طلبات اياكس.

فيما يتعلق "تكرار الصفحة سلوك من C# باستخدام WebRequest/WebResponse" ماذا عليك أن تدرك أنه كما قلت سابقا, Javascript AJAX الاتصال هو شيء أكثر من طلب HTTP.إنه طلب HTTP أن Javacript يجعل من "وراء الكواليس" ، أو خارج النطاق إلى ملقم ويب.لتكرار هذا ، هو في الحقيقة لا يختلف عن تكرار العادي أو الحصول على وظيفة عادية كما وضحت أعلاه.وهذا هو المكان الحرائق يأتي في اللعب.استخدامه يمكنك عرض الطلبات ، كما جافا سكريبت يجعل لهم - انظر إلى لوحة التحكم و انظر ماذا طلب رسالة يبدو.

ثم يمكنك استخدام نفس الأسلوب على النحو الوارد أعلاه ، باستخدام HttpWebRequest/HttpWebResponse لتقديم نفس النوع من طلب جافا سكريبت لا تفعل ذلك فقط من C# بدلا من ذلك.

جريج, آمل أن يكون هذا يوضح جوابي قليلا ولكن أبعد من هذا أقترح اللعب مع الحرائق و ربما تعلم المزيد حول كيفية بروتوكول HTTP يعمل وكيف AJAX يعمل التكنولوجيا.

نصائح أخرى

هل نظرت في استخدام السيلينيوم.AFAIK, يمكنك كتابة حالات الاختبار في C# و أعلم اختبار لدينا يستخدم بنجاح قبل أن واجهة المستخدم اختبار تمكين اياكس ASP.NET الموقع

http://seleniumhq.org/

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