PDA

View Full Version : گفتگو: بحث در مورد برنامه نویسی با کامپوننت جدید watin برای دستکاری صفحات وب



sajadzare
پنج شنبه 03 مرداد 1392, 16:42 عصر
سلا به همه دوستان
چند وقتی بود میخواستم بدونم چه طور میشه با سی شارپ یه برنامه تحت وب رو کنترل و دستکاری کرد. در واقع کارهایی که کاربر باید انجام بده رو خود نرم افزار انجام بده.

تا اینکه یکی از دوستان سایت WatiN.org رو بهم معرفی کرد.

این کامپوننت میتونه عملیاتی مثل لاگین در سایتها رو به راحتی بدون دخالت کاربر انجام بده.
اگر این کامپوننت رو دانلود کنید و استفاده کنید می بینید که توابع زیادی داره که میتونه هر کاری رو توی صفحه وب براتون انجام بده.

من این تاپیک رو ایجاد کردم تا دوستان عزیز پروژه هایی که با این کامپوننت می نویسند رو برای استفاده دوستان دیگه بذارند تا دانش استفاده از این کامپوننت روزبه روز بیشتر بشه.


برای استفاده بهتر از این کامپوننت باید مبحث Inspect Elements رو بدونین و جزئیات عناصر استفاده شده در صفحه وب نظیر نام باتن ها نام تکست باکس ها و غیره رو بدونین و بتونین توی برنامه تون ازش استفاده کنید
که مثلا برنامه بره توی سایت .... و تکست باکس 1 و تکست باکس 2 رو با یه مقادیری پر کنه و دکمه 1 رو کلیک کنه

اولین پروژه رو خودم میذارم..

باز کردن صفحه گوگل و تایپ یک عبارت در متن جستجو و کلیک روی دکمه جستجو....... همه اینها رو خود برنامه براتون انجام میده.
نشد آپلود کنم کدهاشو میزارم. البته یادتون نره خود فایل کامپوننت هم باید به قسمت ریسورس برنامه اضافه بشه



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WatiN.Core;



namespace webcontrol
{
public partial class Form1 : System.Windows.Forms.Form
{
private IE browser = null;
public Form1()
{
InitializeComponent();

}

private void send_btn_Click(object sender, EventArgs e)
{
send_txt.Text = "start...";
browser = new IE();
browser.GoTo("http://www.google.com");
//یافتن موقعیت تکست باکس جستجوی گوگل و پر کردن متن آن
browser.TextField(Find.ById("gbqfq")).TypeText("barnamenevis");
//کلیک بر روی دکمه جستجو
browser.Button(Find.ById("gbqfba")).Click();
send_txt.Text = "End.";


}
}
}

plus
پنج شنبه 03 مرداد 1392, 19:47 عصر
من قبلا یه Library ساده برای دو تا پروژه خاص نوشته بودم.شبیه همین، کلاس Browser داشت و متد Go و ... البته خیلی مبتدی و ساده تر از نظر امکانات...برام جالب بود این WatiN چکار کرده...یه نگاه سطحی کردم، امکانات و متد های جالبی داره اما ظاهرا یه مشکل اساسی داره اونم اینه که یک Process واقعی از Browser مورد نظر میسازه و کارایی که قراره انجام بده رو واقعا از طریق اون پروسه ها انجام میده، چیزی که به نظرم جالب نیست.چیزی که نوشته بودم همه کارها رو خودش هندل میکرد..البته برای گذاشتن امکاناتی مثل گرفتن عکس از صفحه (Render کردن html)، هندل کردن DialogBox ها و ... کاری جز این هم نمیشد کرد.
به نظرم برای کارهایی که ساده هست از همون روش گرفتن اطلاعات با استفاده از Socket و یا کلاس های مربوط به Web و بعد Parse کردن صفحه با استفاده از RegEx میتونه بهتر باشه.اینکه صفحه Browser باز بشه جلوی چشم مشتری، هم منابع بیشتری از سیستم میگیره هم توی ذوق میزنه...