لكل من يبحث عن طرق التسجيل او الدخول

تم تحميل الصفحة في 0,8181996 ثانية
لكل من يبحث عن طرق التسجيل او الدخول

عـبـدالـله

.:: مُشرف قسم python ::.
rankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
1,332
الإعجابات
1,761
النقاط
198
السلام عليكم ورحمة الله وبركاته

لاحظت ان الكثير يستفسر عن كيفية تسجيل الدخول او التسجيل او حتى التخمين على احد المواقع

وللاسف لم ارى لأداة Katalon Recorder اي حضور في المنتدى




اداة Katalon Recorder شبيهه بأداة الـ Selenium

لها نفس الخصائص تجلب كل ما تريده من الموقع المستهدف

واخيرآ عند الانتهاء هناك خيار بأسم Export تعرض لك خيارات لحفظ الاكواد باللغة التي تريد

واللغات التي تدعمها هيا Python , C# , Ruby , Java

ينتج لك كود برمجي لستغلاله في مشروعك والتعديل او الاضافة عليه

والقصه تطول عن هذي الاداة الجميله

موقع الاداة

Katalon Studio: Best automated testing tool for web, mobile, API

تستطيع تثبيت الاداة من خلال الاضافات في متصفحك

الاستعمال سهل فقط تعبث بالاداة ستفهم كيف تتحكم بها

بالتوفيق للجميع


 

Ahmed Al'jabari

إداري أقسام البرمجة
rankrankrankrank
إنضم
24 يونيو 2017
المشاركات
1,278
الإعجابات
1,037
النقاط
123
الإقامة
Turkey
لم افهم عمل الاداه بالضبط ..
هل تسجل الخطوات التي تقوم بها وتحولها لكود برمجي حسب اللغه التي تريد البرمجه بها ؟
طيب تحولها لشنو webrequest , webclint , webbrowser ؟
 

عـبـدالـله

.:: مُشرف قسم python ::.
rankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
1,332
الإعجابات
1,761
النقاط
198
لم افهم عمل الاداه بالضبط ..
هل تسجل الخطوات التي تقوم بها وتحولها لكود برمجي حسب اللغه التي تريد البرمجه بها ؟
طيب تحولها لشنو webrequest , webclint , webbrowser ؟
تقوم بتحويل الكود الى مكتبة Selenium

يكون الكود جاهز للاستخدام وايضآ للتعديل عليه
لكن اذا اردنا ان نعدل عليه يجب ان نفهم دوال Selenium
حتى يسهل التعديل والاضافه

انا قمت بعمل برنامج من خلاله مع اضافة PyQt5
واجهة للمستخدم تسهل عليه ارسال مسج لموقع تويتر لكن ايضآ هناك اضافات يجب علينا وضعها مع مجلد المشروع مثل
Chorme webdriver
او للفايرفوكس
firefox webdriver
نحتاج اضافة احد الاداة اما فايرفوكس او قوقل كورم

حتى لا تحصل مشاكل عند تشغيل الكود

..
 

عـبـدالـله

.:: مُشرف قسم python ::.
rankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
1,332
الإعجابات
1,761
النقاط
198
الاداة وظيفتها تسهيل الحصول على الاكواد الخاصه بالموقع المراد استهدافه وتحويله الى مكتبة Seleinum
 

Ahmed Al'jabari

إداري أقسام البرمجة
rankrankrankrank
إنضم
24 يونيو 2017
المشاركات
1,278
الإعجابات
1,037
النقاط
123
الإقامة
Turkey
تقوم بتحويل الكود الى مكتبة Selenium

يكون الكود جاهز للاستخدام وايضآ للتعديل عليه
لكن اذا اردنا ان نعدل عليه يجب ان نفهم دوال Selenium
حتى يسهل التعديل والاضافه

انا قمت بعمل برنامج من خلاله مع اضافة PyQt5
واجهة للمستخدم تسهل عليه ارسال مسج لموقع تويتر لكن ايضآ هناك اضافات يجب علينا وضعها مع مجلد المشروع مثل
Chorme webdriver
او للفايرفوكس
firefox webdriver
نحتاج اضافة احد الاداة اما فايرفوكس او قوقل كورم

حتى لا تحصل مشاكل عند تشغيل الكود

..
تسلم عالشرح اخي , هل يمكن استفاد منها بالrequest ؟ او بالبراوزر ؟ ام انها مقتصره عله Selenium فقط
 

عـبـدالـله

.:: مُشرف قسم python ::.
rankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
1,332
الإعجابات
1,761
النقاط
198
تسلم عالشرح اخي , هل يمكن استفاد منها بالrequest ؟ او بالبراوزر ؟ ام انها مقتصره عله Selenium فقط
طبعآ اذا ال request يجلب اكواد الموقع تقوم بأخذ اكواد الموقع من الاداة واضافتها مع دوال مكتبة request

او تستغل الاكواد من خلال مكتبة Selenium

الاداة وظيفتها يحفظ شفرة الموقع عند الضغط عليه بالماوس تقوم بتسجيل ماقمت بالضغط عليه

واكود السي شارب بهذا الشكل

استدعاء مكتبة selenium

كود:
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;
الكود بكون بهذا الشكل :

كود:
using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;

namespace SeleniumTests
{
    [TestClass]
    public class UntitledTestCase
    {
        private static IWebDriver driver;
        private StringBuilder verificationErrors;
        private static string baseURL;
        private bool acceptNextAlert = true;
        
        [ClassInitialize]
        public static void InitializeClass(TestContext testContext)
        {
            driver = new FirefoxDriver();
            baseURL = "https://www.katalon.com/";
        }
        
        [ClassCleanup]
        public static void CleanupClass()
        {
            try
            {
                //driver.Quit();// quit does not close the window
                driver.Close();
                driver.Dispose();
            }
            catch (Exception)
            {
                // Ignore errors if unable to close the browser
            }
        }
        
        [TestInitialize]
        public void InitializeTest()
        {
            verificationErrors = new StringBuilder();
        }
        
        [TestCleanup]
        public void CleanupTest()
        {
            Assert.AreEqual("", verificationErrors.ToString());
        }
        
        [TestMethod]
        public void TheUntitledTestCaseTest()
        {
            driver.Navigate().GoToUrl("https://www.google.com/search?q=twitter&rlz=1C1CHBF_enKW753KW753&oq=twi&aqs=chrome.0.0l2j69i57j0l3.4678j0j8&sourceid=chrome&ie=UTF-8");
            driver.FindElement(By.LinkText("Log in")).Click();
            driver.FindElement(By.XPath("(//input[@name='session[username_or_email]'])[2]")).Clear();
            driver.FindElement(By.XPath("(//input[@name='session[username_or_email]'])[2]")).SendKeys("gmail.com");
            driver.FindElement(By.Id("page-outer")).Click();
        }
        private bool IsElementPresent(By by)
        {
            try
            {
                driver.FindElement(by);
                return true;
            }
            catch (NoSuchElementException)
            {
                return false;
            }
        }
        
        private bool IsAlertPresent()
        {
            try
            {
                driver.SwitchTo().Alert();
                return true;
            }
            catch (NoAlertPresentException)
            {
                return false;
            }
        }
        
        private string CloseAlertAndGetItsText() {
            try {
                IAlert alert = driver.SwitchTo().Alert();
                string alertText = alert.Text;
                if (acceptNextAlert) {
                    alert.Accept();
                } else {
                    alert.Dismiss();
                }
                return alertText;
            } finally {
                acceptNextAlert = true;
            }
        }
    }
}
اذا اردنا استغلاله بمكتبة اخرى نستغل الـ FindElement مع اضافته بمكتبة الجلب request


المكتبة الخاصه بلغة سي شارب تحتاج تثبيتها على الجهاز وجلبها لواجهة المشروع
Downloads
 

Ahmed Al'jabari

إداري أقسام البرمجة
rankrankrankrank
إنضم
24 يونيو 2017
المشاركات
1,278
الإعجابات
1,037
النقاط
123
الإقامة
Turkey
طبعآ اذا ال request يجلب اكواد الموقع تقوم بأخذ اكواد الموقع من الاداة واضافتها مع دوال مكتبة request

او تستغل الاكواد من خلال مكتبة Selenium

الاداة وظيفتها يحفظ شفرة الموقع عند الضغط عليه بالماوس تقوم بتسجيل ماقمت بالضغط عليه

واكود السي شارب بهذا الشكل

استدعاء مكتبة selenium

كود:
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;
الكود بكون بهذا الشكل :

كود:
using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;

namespace SeleniumTests
{
    [TestClass]
    public class UntitledTestCase
    {
        private static IWebDriver driver;
        private StringBuilder verificationErrors;
        private static string baseURL;
        private bool acceptNextAlert = true;
      
        [ClassInitialize]
        public static void InitializeClass(TestContext testContext)
        {
            driver = new FirefoxDriver();
            baseURL = "https://www.katalon.com/";
        }
      
        [ClassCleanup]
        public static void CleanupClass()
        {
            try
            {
                //driver.Quit();// quit does not close the window
                driver.Close();
                driver.Dispose();
            }
            catch (Exception)
            {
                // Ignore errors if unable to close the browser
            }
        }
      
        [TestInitialize]
        public void InitializeTest()
        {
            verificationErrors = new StringBuilder();
        }
      
        [TestCleanup]
        public void CleanupTest()
        {
            Assert.AreEqual("", verificationErrors.ToString());
        }
      
        [TestMethod]
        public void TheUntitledTestCaseTest()
        {
            driver.Navigate().GoToUrl("https://www.google.com/search?q=twitter&rlz=1C1CHBF_enKW753KW753&oq=twi&aqs=chrome.0.0l2j69i57j0l3.4678j0j8&sourceid=chrome&ie=UTF-8");
            driver.FindElement(By.LinkText("Log in")).Click();
            driver.FindElement(By.XPath("(//input[@name='session[username_or_email]'])[2]")).Clear();
            driver.FindElement(By.XPath("(//input[@name='session[username_or_email]'])[2]")).SendKeys("gmail.com");
            driver.FindElement(By.Id("page-outer")).Click();
        }
        private bool IsElementPresent(By by)
        {
            try
            {
                driver.FindElement(by);
                return true;
            }
            catch (NoSuchElementException)
            {
                return false;
            }
        }
      
        private bool IsAlertPresent()
        {
            try
            {
                driver.SwitchTo().Alert();
                return true;
            }
            catch (NoAlertPresentException)
            {
                return false;
            }
        }
      
        private string CloseAlertAndGetItsText() {
            try {
                IAlert alert = driver.SwitchTo().Alert();
                string alertText = alert.Text;
                if (acceptNextAlert) {
                    alert.Accept();
                } else {
                    alert.Dismiss();
                }
                return alertText;
            } finally {
                acceptNextAlert = true;
            }
        }
    }
}
اذا اردنا استغلاله بمكتبة اخرى نستغل الـ FindElement مع اضافته بمكتبة الجلب request


المكتبة الخاصه بلغة سي شارب تحتاج تثبيتها على الجهاز وجلبها لواجهة المشروع
Downloads
شكرا عالتوضيح تم تنزيلها نشالله
 

عـبـدالـله

.:: مُشرف قسم python ::.
rankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
1,332
الإعجابات
1,761
النقاط
198
شكرا عالتوضيح تم تنزيلها نشالله

العفو اخي العزيز لو تلاحظ ان استدعاء كل مايتم الضغط عليه في دالة الـ FindElement

اعتقد ان اداة الـ Selenium الكثير من اوامرها تم اخذها من الـ javascript

By.XPath

SendKeys

By.Id

alert

لكن بستطاعة اي شخص استغلال الاكواد في مكتبات لغات برمجة اخرى

بالتوفيق لك
 

عـبـدالـله

.:: مُشرف قسم python ::.
rankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
1,332
الإعجابات
1,761
النقاط
198
إنضم
15 مارس 2013
المشاركات
1,129
الإعجابات
1,162
النقاط
113
الإقامة
أ‡أ،أŒأ’أ‡أ†أ‘
هذا سكربت تسجيل الدخول الى تويتر واضافة تغريدات

قم بعمل نفس الطريقه المشروحه لكن للسناب شاب

Python - شرح تسجيل الدخول في تويتر واضافة تغريدة
شكرا اخي عبد الله ليس عندي مشكلة في تسجيل الدخول الى التويتر و باقي الحسابات استطيع التعامل مع الفرم بالسونسوم او بايثون مشين
استطيع الدخول و التعليق و كل شئ
لكن عندي مشكلة في تسجيل الدخول لسناب شات بسبب كود الكاباتشا
ادا عندك طريقة لتجاوز الكاباتشا
او عندك طريقة لتجاوزها عن طريق api
 

عـبـدالـله

.:: مُشرف قسم python ::.
rankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
1,332
الإعجابات
1,761
النقاط
198
شكرا اخي عبد الله ليس عندي مشكلة في تسجيل الدخول الى التويتر و باقي الحسابات استطيع التعامل مع الفرم بالسونسوم او بايثون مشين
استطيع الدخول و التعليق و كل شئ
لكن عندي مشكلة في تسجيل الدخول لسناب شات بسبب كود الكاباتشا
ادا عندك طريقة لتجاوز الكاباتشا
او عندك طريقة لتجاوزها عن طريق api

الكاباتشا الخاصه بقوقل صعبه

لكن ان شاء الله سأقوم بالتطبيق واذا وجت طريقه للتخطي سأضعه بموضوع مستقل و سأبلغك اخي العزيز


حاليآ اقوم بعمل تعديلات على الكود لجعله يقبل اكثر من حساب في تويتر مع اضافة تغريدات

بعني تحسينات للكود حتى يستفيد منه الكل مع بعض الاضافات
 
إنضم
15 مارس 2013
المشاركات
1,129
الإعجابات
1,162
النقاط
113
الإقامة
أ‡أ،أŒأ’أ‡أ†أ‘
الكاباتشا الخاصه بقوقل صعبه

لكن ان شاء الله سأقوم بالتطبيق واذا وجت طريقه للتخطي سأضعه بموضوع مستقل و سأبلغك اخي العزيز

حاليآ اقوم بعمل تعديلات على الكود لجعله يقبل اكثر من حساب في تويتر مع اضافة تغريدات

بعني تحسينات للكود حتى يستفيد منه الكل مع بعض الاضافات
شكرا اخي عبد الله ياريت تجد لنا حل لاكود الكاباتشا لاني متوقف عنده
 

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 1 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل