نمایش نتایج 1 تا 15 از 15

نام تاپیک: درخواست راهنمایی برای ارسال تکست باکس به مرورگر

  1. #1

    درخواست راهنمایی برای ارسال تکست باکس به مرورگر

    سلام دوستان وقت بخیر
    من توسط آموزش زیر گوگل کروم را به فرمم اضافه کردم
    https://www.codeproject.com/Tips/105...using-CefSharp

    قبلا توسط وب بروزر خود سی شارپ و با گت المنت میتونستم به دستور زیر مقادیر را به سایت ارسال کنم
    برای مثال کد نمونه :
                foreach (HtmlElement item in webBrowser1.Document.GetElementsByTagName("INPUT")  )
    {
    //'''''''''''''''''' ایمیل ''''''''''''''''
    if (item.GetAttribute("NAME") == "email")
    {
    item.SetAttribute("Value", textBox1.Text);
    }
    //''''''''''''''''''''پسورد'''''''''''''''''
    if (item.GetAttribute("NAME") == "password")
    {
    item.SetAttribute("Value", textBox2.Text);
    }
    //''''''''''''''''''کلیک ورود'''''''''''''''''

    if (item.GetAttribute("Value").Trim() == "ورود")
    {
    item.InvokeMember("Click");
    }
    }

    حالا که از مرورگر کروم استفاده می کنم نمیدونم چطور مقدار تکست باکس را به سایت ارسال کنم
    ممنون میشم راهنماییم کنید

  2. #2

    نقل قول: درخواست راهنمایی برای ارسال تکست باکس به مرورگر

    سلام. میشه توضیح بدید که برنامه ای که مینویسید قرار هست چیکار بکنه؟ میخواید فیلد های یه صفحه وبسایت رو پرکنید که کاربر لازم نباشه هربار مقدار ها رو وارد کنه؟ میشه در مورد صفحه وبسایت هم توضیح بدید؟

  3. #3

    نقل قول: درخواست راهنمایی برای ارسال تکست باکس به مرورگر

    نقل قول نوشته شده توسط MohammadHadi2031 مشاهده تاپیک
    سلام. میشه توضیح بدید که برنامه ای که مینویسید قرار هست چیکار بکنه؟ میخواید فیلد های یه صفحه وبسایت رو پرکنید که کاربر لازم نباشه هربار مقدار ها رو وارد کنه؟ میشه در مورد صفحه وبسایت هم توضیح بدید؟
    سلام
    بله همین کار هست
    یک فرم ساده هست که فقط یک فیلد داره
    میخوام محتویات داخل تکست باکس را به این فرم تک فیلد ارسال و ثبت کنم

  4. #4

    نقل قول: درخواست راهنمایی برای ارسال تکست باکس به مرورگر

    من با cefsharp کارنکردم ولی ببینید این لینک براتون مفیده؟ میخواسته به عبارتی رو تو قسمت جستجوی به سایتی واردکنه و جستجو رو اتوماتیک انجام بده.
    شاید این نکته رو بدونید جهت اطمینان میگم، وقتی یه فرم رو کاربر پر میکنه و دکمه submit رو میزنه یه درخواست به سرور ارسال میشه اگه تو نرم افزارتون بخواین یه فیلد پر بشه و اتوماتیک دکمه فشارداده بشه میتونید یه کد بزنید که اون درخواست رو به سرور بفرسته و نیازی به لود صفحه وبسایت نباشه

  5. #5
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,173

    نقل قول: درخواست راهنمایی برای ارسال تکست باکس به مرورگر

    نقل قول نوشته شده توسط soheilnew مشاهده تاپیک
    من توسط آموزش زیر گوگل کروم را به فرمم اضافه کردم
    https://www.codeproject.com/Tips/105...using-CefSharp
    ...
    ...
    قبلا توسط وب بروزر خود سی شارپ و با گت المنت میتونستم به دستور زیر مقادیر را به سایت ارسال کنم
    ...
    ...
    حالا که از مرورگر کروم استفاده می کنم نمیدونم چطور مقدار تکست باکس را به سایت ارسال کنم
    من وارد بحث کدنویسی با این کنترل نمیشم چون مستندات و کد و پروژه نمونه برای اون زیاد هست و همه هم سی شارپ.
    ولی مختصر این که:
    1- در این کنترل برخلاف کنترل webbrowser که خیلی راحت به dom دسترسی دارین، دسترسی مستقیم به dom ندارین و باید از متدهای executejavascript و evaluatejavascript استفاده کنین.
    این متدها چون آسنکرون هستن باید حواستون به موارد مربوط به روش کار با اونها هم باشه.
    مثلا باید قبل از اینکه نتیجه document.getelememtsbytagname("div") رو با evalutejavascriptasync بگیرین، از اینکه داکیومنت کامل لود شده مطمئن بشین وگرنه فقط اون تعدادی رو که تا لحظه اجرا لود شده برمیگردونه.
    2- نتیجه ای که برمیگرده مجموعه ای از html element و ... نمیتونه باشه و خودتون باید در کدنویسی این ها رو در نظر داشته باشین.
    3- برخلاف کنترل وب بروزر، داکیومنت ممکنه در چند frame برگرده (فرضا صفحه ای که یک iframe داره ممکنه در سه فریم برگرده) بنابراین باید این رو هم درنظر بگیرین چون ممکنه المنتی رو که در نظر دارین در یک فریم دیگه باشه.

    در کل کار کردن با این کنترل راحت نیست (در مقایسه با وب بروزر) و بهتره به جای این از کنترل webview2 که رو edge بنا شده استفاده کنین (خود edge از موتور کرومیوم استفاده میکنه)،
    به هر حال کنترل خود مایکروسافت هست.

  6. #6
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,173

    نقل قول: درخواست راهنمایی برای ارسال تکست باکس به مرورگر

    نقل قول نوشته شده توسط MohammadHadi2031 مشاهده تاپیک
    وقتی یه فرم رو کاربر پر میکنه و دکمه submit رو میزنه یه درخواست به سرور ارسال میشه اگه تو نرم افزارتون بخواین یه فیلد پر بشه و اتوماتیک دکمه فشارداده بشه میتونید یه کد بزنید که اون درخواست رو به سرور بفرسته و نیازی به لود صفحه وبسایت نباشه
    سلام و روزخوش
    چجوری فیلدهای یک فرم رو پر و بعد submit میکنین بدون اینکه اون صفحه در یک کنترل مرورگر لود شده باشه؟
    میشه یک نمونه بگذارین؟

  7. #7

    نقل قول: درخواست راهنمایی برای ارسال تکست باکس به مرورگر

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    سلام و روزخوش
    چجوری فیلدهای یک فرم رو پر و بعد submit میکنین بدون اینکه اون صفحه در یک کنترل مرورگر لود شده باشه؟
    میشه یک نمونه بگذارین؟
    سلام
    این لینک میتونه مفید باشه. همچنین اگه میخواین در موردش بیشتر بدونید توضیحات این لینک هم خوبه

  8. #8
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,173

    نقل قول: درخواست راهنمایی برای ارسال تکست باکس به مرورگر

    نقل قول نوشته شده توسط MohammadHadi2031 مشاهده تاپیک
    سلام
    این لینک میتونه مفید باشه. همچنین اگه میخواین در موردش بیشتر بدونید توضیحات این لینک هم خوبه
    سلام
    امیدوارم وقت شما رو نگرفته باشم.

    شاید خوب مطرح نکردم پرسش رو:
    فرض کنید قرار هست در یک سایت login و بعد در اون کار کنیم نه این که مثل وب سرویس فقط پارامتر بفرستیم و پاسخ بگیریم.
    خب بدون این که یک کنترل مرورگر داشته باشیم، فیلدهای username/password رو پر و فرم رو submit میکنیم و یک پاسخ string هم دریافت میکنیم (در واقع html source صفحه).
    مشکل من اینجاست که حالا چه شکلی با اون سایت تعامل داشته باشیم؟




  9. #9

    نقل قول: درخواست راهنمایی برای ارسال تکست باکس به مرورگر

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    سلام
    امیدوارم وقت شما رو نگرفته باشم.

    شاید خوب مطرح نکردم پرسش رو:
    فرض کنید قرار هست در یک سایت login و بعد در اون کار کنیم نه این که مثل وب سرویس فقط پارامتر بفرستیم و پاسخ بگیریم.
    خب بدون این که یک کنترل مرورگر داشته باشیم، فیلدهای username/password رو پر و فرم رو submit میکنیم و یک پاسخ string هم دریافت میکنیم (در واقع html source صفحه).
    مشکل من اینجاست که حالا چه شکلی با اون سایت تعامل داشته باشیم؟
    اگر سایت مقصد متعلق به خودتون هست بهترین کار اینکه براش API درست کنید .حالت دوم مرورگرها هستند که خودتونون بهش اشاره داشتین و دوستمون
    پیشنهاد دادن از cefsharp استفاده نکنید اما حالت سوم ( بدون استفاده از مرورگر )

    https://stackoverflow.com/a/8091963/4471268

    شما می تونید از طریق متد POST و Get سمت سرور پارامترها رو ارسال کنید.نتیجه ای که برمی گرده اگر بصورت HTML باشه دوباره با یه سری دستورات می تونید خروجی رو به برحسب یه سری تگ ها استخراج کنید.
    آخرین ویرایش به وسیله mehran6764 : پنج شنبه 27 خرداد 1400 در 11:38 صبح

  10. #10

    نقل قول: درخواست راهنمایی برای ارسال تکست باکس به مرورگر

    استخراج تگ Title از سورس HTML


    function get_title($html) {
    return preg_match('!<title>(.*?)</title>!i', $html, $matches) ? $matches[1] : '';
    }

  11. #11
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,173

    نقل قول: درخواست راهنمایی برای ارسال تکست باکس به مرورگر

    نقل قول نوشته شده توسط mehran6764 مشاهده تاپیک
    اگر سایت مقصد متعلق به خودتون هست بهترین کار اینکه براش API درست کنید .حالت دوم مرورگرها هستند که خودتونون بهش اشاره داشتین و دوستمون
    پیشنهاد دادن از cefsharp استفاده نکنید اما حالت سوم ( بدون استفاده از مرورگر )

    https://stackoverflow.com/a/8091963/4471268

    شما می تونید از طریق متد POST و Get سمت سرور پارامترها رو ارسال کنید.نتیجه ای که برمی گرده اگر بصورت HTML باشه دوباره با یه سری دستورات می تونید خروجی رو به برحسب یه سری تگ ها استخراج کنید.
    سلام و روز خوش

    مطلب این نیست که ندونم متدهای post/get چی هست و ارسال با فرم و query string رو بخوام یاد بگیرم،
    یا header به request اضافه کنم،
    یا یا با regular expression یک تگ رو از html source بیرون بکشم ،
    و ...

    این موارد که گفته شد صرفا برای ارسال یک request و دریافت یک response هست ولی داستان سر interact با سایت و automation هست.

    پرسش من اینجاست که نمیدونم چجوری میشه بدون یک کنترل مرورگر (حالا هرچی، چه webbrowser یا همین cefsharp یا webview2 یا ...) ،
    میتونیم فرضا در همین سایت برنامه نویس login کنیم و به یک تالار مشخص بریم و بعد پست بگذاریم؟
    یا در یاهو login کنم و ایمیل بفرستم؟
    وگرنه کار با وب سرویس یا harvesting یک سایت که نیازی به کنترل مرورگر نداره.

  12. #12

    نقل قول: درخواست راهنمایی برای ارسال تکست باکس به مرورگر

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



    static string login(string url, string username, string password)
    {
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
    string cookie = "";
    string values = "vb_login_username="+username+"&vb_login_password= "+password
    + "securitytoken=guest&"
    + "cookieuser=checked&"
    + "do=login";
    req.Method = "POST";
    req.ContentType = "application/x-www-form-urlencoded";
    req.ContentLength = values.Length;
    CookieContainer a = new CookieContainer();
    req.CookieContainer = a;

    System.Net.ServicePointManager.Expect100Continue = false; // prevents 417 error

    using (StreamWriter writer = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII))
    {
    writer.Write(values); }

    HttpWebResponse c = (HttpWebResponse)req.GetResponse();
    foreach (Cookie cook in c.Cookies) {
    cookie = cookie + cook.ToString() + ";"; }

    return cookie;
    }


    منبع : https://stackoverflow.com/a/33318869/4471268

  13. #13
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,173

    نقل قول: درخواست راهنمایی برای ارسال تکست باکس به مرورگر

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

    1- آیا همه سایتها از کوکی استفاده میکنن؟

    2- اگر سایت از کپچا استفاده کنه، میشه از طریق مرورگر مرحله ورود رو رد کرد و به فرض استفاده از کوکی مابقی کار رو به روش پیشنهادی شما؟

  14. #14

    نقل قول: درخواست راهنمایی برای ارسال تکست باکس به مرورگر

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    سلام
    پس نیاز به کوکی هست.

    1- آیا همه سایتها از کوکی استفاده میکنن؟

    2- اگر سایت از کپچا استفاده کنه، میشه از طریق مرورگر مرحله ورود رو رد کرد و به فرض استفاده از کوکی مابقی کار رو به روش پیشنهادی شما؟
    کاری که میخوایین انجام بدین جزییات داره ، مثلا حتی کدی که در پست قبل براتون فرستادم نویسنده اش تاکید کرده روی نسخه vBulletin تست کرده .
    وابسته به هر نوع سایتی کد نویسی شما متفاوت خواهد بود.
    موردی که هم در مورد کپچا نوشتین با این روش نمیشه دور زد چون سمت سرور چک میشه که مقدار کپچا وارد شده یا خیر

  15. #15
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,173

    نقل قول: درخواست راهنمایی برای ارسال تکست باکس به مرورگر

    بله،
    موضوع همینه که شما فقط در موارد خاص میتونین بدون کنترل مرورگر با یک سایت interact داشته باشین.

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

تاپیک های مشابه

  1. سوال: درخواست راهنمایی اتصال سایت به دیتا بیس هاست
    نوشته شده توسط farzadsad در بخش ASP.NET MVC
    پاسخ: 5
    آخرین پست: شنبه 09 فروردین 1399, 14:03 عصر
  2. پاسخ: 1
    آخرین پست: یک شنبه 06 فروردین 1396, 09:01 صبح
  3. پاسخ: 2
    آخرین پست: یک شنبه 23 تیر 1392, 23:26 عصر
  4. پاسخ: 12
    آخرین پست: پنج شنبه 11 مهر 1387, 12:08 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •