0 امتیاز

ببخشید من یه سوال خیلی خیلی مبتدی دارم.

میخواستم از اینکتابخانه استفاده کنم، منتهی تو بخش اول نوشته به pom اضافه کنید. این بعنی چی؟!

کجا؟چی؟ بنده که چیزی از سوالتون متوجه نشدم. لطفا بیشتر توضیح بدین. خودتون یه بار سوالتونو بخونید. این یعنی چی "منتهی تو بخش اول نوشته به pom اضافه کنید"
توسط (6,480 امتیاز) 6 17 129
Getting started: Embedded Mode
To use BrowserMob Proxy in your tests or application, add the browsermob-core dependency to your pom:

    <dependency>
        <groupId>net.lightbody.bmp</groupId>
        <artifactId>browsermob-core</artifactId>
        <version>2.1.5</version>
        <scope>test</scope>
    </dependency>
Start the proxy:

    BrowserMobProxy proxy = new BrowserMobProxyServer();
    proxy.start(0);
    int port = proxy.getPort(); // get the JVM-assigned port
    // Selenium or HTTP client configuration goes here
Then configure your HTTP client to use a proxy running at the specified port.

 

منظورم بخش اول راهنماش بود جناب ابراهیمی. 

توسط (192 امتیاز) 9

1 پاسخ

+1 امتیاز
برای اینکه پاسخ بهتری بگیرید لازمه روی پروژه کار کنید و مشکلات رو با کد نشون بدید

در این صورت سوالات  گنگ و نامفهومه

خب منظور از اینکه نوشته pom اضافه کنید باید یه مدل از ابجکت در اون صفحه اضافه کنید حالا پروزتون چیه نمیدونم

اینا کدهای asp هستش؟

اولا، اجازه بدید توضیح بدم که عبارت «انتزاع» چه معنایی دارد؟ وقتی از آن استفاده میکنیم؟

انتزاع تکنیکی است که در طراحی نرم افزار مورد استفاده قرار می گیرد که هدف آن ساده سازی نمایندگی کدهای موجود در منطق است و به برنامه نویس  اجازه می دهد تا "پنهان کردن" پیاده سازی های پیچیده. رو انجام بده  هدف این است که یک لایه انتزاعی (ساده) ایجاد کنیم که فقط ویژگی های و قابلیت های مرتبط را برای یک موجودیت خاص نمایش می دهد.

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

حالا که چی؟

Page Object Model یا pom

اولین لایه شامل لایه راننده می شود که می تواند Appium یا Selenium باشد و اجرای روش ها و منطق هایی که اغلب تغییر نمی کنند (مانند پشتیبانی از مرورگر متقابل، ماژول گزارش گیری، پیاده سازی مبتنی بر داده ها

لایه دوم می تواند یک کد کتابخانه ای باشد که در بالای لایه ران (Appium یا Selenium) ساخته شده است

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

لایه چهارم - میتونیم به راحتی اقداماتی را که در لایه سوم ایجاد کرده ایم، ایجاد کنیم و موارد آزمایش های کاربردی را ایجاد کنیم

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

Factory PageObject در Selenium می تواند به شما در مدیریت اشیاء خود کمک کند، باعث تثبیت اعدام شود و کد شما را راحت تر قابل خواندن باشد.

Factory PageObject از طریق کتابخانه پشتیبانی Selenium قابل دسترسی است، برای استفاده از این باید زیر را به بالای کلاس های شیء صفحه اضافه کنید.

دیگه نمیدونم بیشتر از توضیحات براتون کافیه؟

بسیار سپاسگدار از وقتی که گذاشتید. والا من همچنان گیجم! حالا ماجرای پروژه من دقیق اینه.

من از طریق selenium تو برنامه م یه ادرس رو در مرورگر باز می کنم. وارد سایت میشم. لاگین می کنم. و بعدش یک لینک رو برای دانلود اجرا می کنم.

حالا مشکل اینجاست بعد از لاگین با selenium نیاز به اطلاعات هدر صفحه دارم که اینطور که خوندم، selenium اطلاعات کوکی رو میده ولی هدر رو خیر. یکی نوشته بود از طریق کتابخانه browsermob و ارتباظش با selenium این کمبود رو برطرف کرد و اطلاعات هدر رو گرفت.

این کده منه برای اینکه لینک رو بدم و مرورگر باز بشه

        public IWebDriver OpenBrowser(string sourcelink)
        {
            try
            {
                ChromeOptions options = new ChromeOptions();
                options.AddArgument("--headless");//hide browser
                options.AddArgument("-no-sandbox");
                options.AddArgument("--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36");
                options.AddArgument("--disable-popup-blocking");
 
                var driverService = ChromeDriverService.CreateDefaultService(new FileInfo(Application.ExecutablePath).DirectoryName);
                driverService.HideCommandPromptWindow = true;
                //Create the reference for our browser
                _driver = new ChromeDriver(driverService, options, TimeSpan.FromMinutes(3));


                _driver.Navigate().GoToUrl(sourcelink);
                _driver.Manage().Window.Maximize();
                return _driver;
            }
            catch (Exception e)
            {
                if (Task.Error == null) Task.Error = e;
                Task.Status = TaskStatuses.Error; Done = true; return null;
            }

        }

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

اینا رو گفتم نگید فقط یه چیزی پرسیده! چون اصلا نمی فهمیدم این مفهوم چیه یکم سوالش هم برام سخت بود. بهرخحال ممنون از وقتی ک گذاشتید

توسط (192 امتیاز) 9
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,924 کاربر

دسته بندی ها

...