প্রোটেক্টর / ওয়েবড্রাইভারজেএসে ডিফল্ট ব্রাউজার উইন্ডো আকারটি কীভাবে সেট করবেন


107

কোনও কারণে যখন আমি কর্মক্ষেত্রে আমার পরীক্ষাগুলি চালিত করি তখন ব্রাউজারটি সর্বাধিক করা হয়, তবে আমি যখন এগুলি ঘরে চালিত করি তবে এটি কেবল প্রায় 50% প্রস্থের একটি ব্রাউজার উইন্ডোটি খুলবে। এর ফলে স্ক্রোল ডাউন ইত্যাদির সাথে কিছু ত্রুটি দেখা দেয়, তাই আমি পরীক্ষাগুলি চালু হওয়া প্রতিটি মেশিনে এটি একই আকারের ব্রাউজার উইন্ডোটি খুলতে চাই ide এটি করার সর্বোত্তম উপায় কী? (আমি অন্যান্য ভাষার জন্য কিছু উত্তর পেয়েছি তবে সেগুলি জাভাস্ক্রিপ্টের সাথে মানিয়ে নিতে সক্ষম হইনি)

যোগ করার পদ্ধতি

browser.executeScript('window.moveTo(0,0);'+
    'window.resizeTo(screen.width, screen.height);');

কিছুই করে না, (দৃশ্যত window.moveToএবং window.resizeToক্রোম দ্বারা সমর্থিত নয়)।


এই মুহুর্তে আপনার কাছে আমার কাছে কোনও উত্তর নেই তবে আমি আপনাকে এটি বলতে পারি window.moveToএবং window.scrollToঅবশ্যই ক্রোম সমর্থিত।
কলিন ব্রক

স্ক্রোলটো কাজ করে। তবে অন্যরা কমপক্ষে আমি যা বলতে পারি তা থেকে নয়। এটি কনসোলে টাইপ করার চেষ্টা করুন ... কিছুই করে না।
জেরেদে

অফ-টপিক পাওয়ার ঝুঁকিতে, এখানে একটি ঝাঁকুনি চিত্রিত করা হয় window.moveToএবং window.resizeTo। এটি ক্রোমে আমার পক্ষে ভাল কাজ করে। আমি জানি না যে আপনি ক্রোমের কনসোল থেকে বর্তমান উইন্ডোটির আকার পরিবর্তন করতে পারেন, তবে resizeToপদ্ধতিটি সেখানে উপলব্ধ রয়েছে তা Chrome এটি সমর্থন করে।
কলিন ব্রক

ঠিক আছে, ব্রাউজারটি জেএস দিয়ে খোলে এমন নতুন উইন্ডোজের জন্য কাজ করছে বলে মনে হচ্ছে। তবে বর্তমান উইন্ডোটির সাথে কাজ করে না, যা আমার প্রয়োজন।
জেরেদে

1
আমার পরীক্ষাটি জিনিসগুলি কাজ করে না বা না করে এবং বিভিন্ন প্রতিক্রিয়াশীল কনফিগারেশনে দৃশ্যমান হয় তাই প্রতিটি পরীক্ষার জন্য আমার উইন্ডোর আকার নিয়ন্ত্রণ করতে সক্ষম হওয়া দরকার।
জেরেদে

উত্তর:


191

আপনি চালিয়ে ডিফল্ট ব্রাউজারের আকার সেট করতে পারেন:

var width = 800;
var height = 600;
browser.driver.manage().window().setSize(width, height);

ব্রাউজার উইন্ডো রান সর্বাধিক করতে:

browser.driver.manage().window().maximize();

অবস্থান রান সেট করতে:

var x = 150;
var y = 100;
browser.driver.manage().window().setPosition(x, y);

আপনি যদি ত্রুটি পান:

WebDriverError: unknown error: operation is unsupported with remote debugging

রিমোট ডিবাগিং ব্যবহার করার সময় অপারেশন সমর্থিত নয় কিছু ওয়েবড্রাইভার কমান্ড (যেমন ব্রাউজার উইন্ডোর আকার পরিবর্তন করা) ব্রাউজারে লোড করার জন্য একটি ক্রোম এক্সটেনশান প্রয়োজন। ক্রোমড্রাইভার প্রতিবার এটি একটি নতুন ক্রোম সেশন শুরু করার সময় সাধারণত এই "অটোমেশন এক্সটেনশান" লোড করে।

তবে ক্রোমড্রাইভারকে একটি নতুন চালু করার পরিবর্তে বিদ্যমান ক্রোম সেশনে সংযোগ করার জন্য নির্দেশ দেওয়া যেতে পারে। সক্ষমতার (ওরফে ChromeOptions) অবজেক্টে 'ডিবাগারএড্রেস' ব্যবহার করে এটি করা হয়। যেহেতু অটোমেশন এক্সটেনশানটি কেবলমাত্র প্রারম্ভকালে লোড হয় তাই কিছু কমান্ড রয়েছে যেগুলি রিমোট ডিবাগিংয়ের মাধ্যমে বিদ্যমান সেশনগুলির সাথে কাজ করার সময় ক্রোমড্রাইভার সমর্থন করে না।

যদি আপনি "রিমোট ডিবাগিং ব্যবহার করার সময় অপারেশন সমর্থিত নয়" ত্রুটিটি দেখেন, তবে পরীক্ষাটি পুনরায় লেখার চেষ্টা করুন যাতে এটি একটি নতুন ক্রোম সেশন শুরু করে। সক্ষমতার অবজেক্ট থেকে 'ডিবাগারএড্রেস' সরিয়ে এটি করা যেতে পারে।

উত্স: https://sites.google.com/a/chromium.org/chromedriver/help/operation-not-supported-when- using- remote- debugging


10
এটি ব্যবহার করে পুরো স্ক্রীন আকারে ব্রাউজারটি সর্বোচ্চ করা সম্ভবbrowser.driver.manage().window().maximize();
বেন স্মিথ

8
আপনি যদি আপনার সমস্ত পরীক্ষার জন্য একই রেজোলিউশন করতে চান তবে আপনার protractor.conf.jsফাইলের onPrepareফাংশনে উপরে কল করতে পারেন ।
নিউক্লিংার

1
@ বেনস্মিথ কেন নিশ্চিত তা browser.driver.manage().window().maximize();জানেন না , তবে আসলে আমার জন্য উইন্ডোটি সর্বাধিক বাড়িয়ে তোলেন না । আমি কিছুটা বড় উইন্ডো পেয়েছি। আমি কেবল setSize()পদ্ধতিটির সাথে একটি প্রস্থ এবং উচ্চতা উল্লেখ করে শেষ করেছি
জেটকম

1
@ অ্যালেক্সানড্রোসএসপ্রোপলস: এটি কাজ করা উচিত তবে আপনাকে নিশ্চিত করতে হবে যে আপনি কোনও নির্বিকার রেজোলিউশনে xvfb চালাচ্ছেন না। উদাহরণস্বরূপ এটি 640x480।
তাদাস সাসনউস্কাস


42

config.jsউইন্ডোর আকার সেট করতে আপনি এটি ব্যবহার করতে পারেন :

// config.js
specs: [
    ...
],
capabilities: {
    browserName: 'chrome',
    chromeOptions: {
        args: ['--window-size=800,600'] // THIS!
    }
}
// ....

আপনার ডাবল ড্যাশ অপসারণ করতে হবে: আরগস: ['উইন্ডো-সাইজ = 800,600']
এজাইন

3
উত্তরে ডাবল ড্যাশ সহ এটি আমার প্রত্যাশার মতো কাজ করে।
Monkpit

'- হেডলেস' আরগস সহ e2e স্ক্রিপ্টগুলি চলাকালীন ব্রাউজারের আকারগুলি সেট করে। মেনুটি মোবাইল ভিউতে স্থানান্তরিত হয়ে গেলে কোনটি কার্যকর।
টনি

28

যদি পছন্দের পদ্ধতি:

browser.driver.manage().window().maximize();

আপনার পক্ষে কাজ করে না (উদাহরণস্বরূপ এক্সভিএফবিতে প্রটেক্টর পরীক্ষা চালানো), তবে আপনি উইন্ডোটিও এইভাবে সর্বোচ্চ করতে পারেন (protractor.conf.js):

onPrepare: function() {
    setTimeout(function() {
        browser.driver.executeScript(function() {
            return {
                width: window.screen.availWidth,
                height: window.screen.availHeight
            };
        }).then(function(result) {
            browser.driver.manage().window().setSize(result.width, result.height);
        });
    });
},

টাইপস্ক্রিপ্ট সংস্করণ:

import {Config, browser} from "protractor";

export let config: Config = {
    ...
    onPrepare: () => {
        setTimeout(() => {
            browser.driver.executeScript<[number, number]>(() => {
                return [
                    window.screen.availWidth,
                    window.screen.availHeight
                ];
            }).then((result: [number, number]) => {
                browser.driver.manage().window().setSize(result[0], result[1]);
            });
        });
    }
};

অটো সহ সেরা আইডিয়া সর্বাধিক রেজোলিউশন পান তবে আপনি সেট পজিশন (0, 0) ভুলে গেছেন তাই এটি ঠিক পর্দার ওপরে উঠবে
অ্যান্ড্রু

এইচএম, আমার ব্রাউজারটি ইতিমধ্যে 0-0-এ অবস্থানে শুরু হয়। তবে ভালো কথা যদি কারও প্রয়োজন হয়।
মার্টিন স্জনাপকা

আমার শুরু হয় ... 50,50 বা কিছু .. কেবল বলছে :)
অ্যান্ড্রু

এটি ওএসের উপর নির্ভর করতে পারে, এখানে হাইপার-ভি এর ভিতরে উইন্ডোজ 8.1 চলছে
অ্যান্ড্রু

16

আমি কেবল নীচে কোডটি আমার প্রটেক্টর.কমফ.জেএস ফাইলটিতে যুক্ত করেছি এবং এটি দুর্দান্ত কাজ করেছে।

onPrepare: function() {
    var width = 1600;
    var height = 1200;
    browser.driver.manage().window().setSize(width, height);
},

আপনার উত্তরে সেটটাইমআউট এবং এক্সিকিউটসস্ক্রিপ্ট কী উদ্দেশ্যে কাজ করে? আমি প্রোটেক্টর ডক্সে সেরা অনুশীলনগুলি খুঁজে পেতে লড়াই করি ...

আমার মতে সরাসরি সর্বোচ্চ () ব্যবহার করা একটি খারাপ ধারণা এবং পছন্দসই পদ্ধতি হওয়া উচিত নয়, কারণ এটি পরীক্ষাগুলি কার্যকর হওয়া প্রতিটি মেশিনে একই আকার স্থাপন করে না এবং প্রতিক্রিয়াশীল আচরণগুলি ভেঙে দিতে পারে।


4

সেলেনিয়াম 4 (প্রটেক্টর 6) এ, setRectপ্রতিস্থাপন setSizeএবংsetPosition

উদাহরণ স্বরূপ,

browser.driver.manage().window().setRect({height: 600, width: 800});

3

Protractor.conf.js ফাইলটিতে নিম্নলিখিত কনফিগারেশন যুক্ত করুন

ক্ষমতা: browser 'ব্রাউজারনাম': 'ক্রোম', ক্রোমঅ্যাপশন: gs আরগস: ['স্টার্ট-ম্যাক্সিমাইজড']}


0

নীচে অনুযায়ী আপনার config.js ফাইলটি পরিবর্তন করুন।

 onPrepare: function () {
      browser.driver.manage().window().setSize(1280, 1024); //width , height

       }, 
 capabilities: {
browserName: 'chrome',
chromeOptions: {
args: [ "--start-maximized" ] // to start browser as maximixed 
         }
    },

-1

নীচে কোড যুক্ত করুন, এটি ব্রাউজার উইন্ডোটিকে সর্বাধিক করে তুলবে

browser.driver.manage().window().maximize();

স্ট্যাকওভারফ্লোতে স্বাগতম। ইতিমধ্যে এমন উত্তর রয়েছে যা আরও তথ্যের সাথে এই তথ্য সরবরাহ করে। আপনার উত্তরগুলি প্রশ্নের নতুন কিছু যুক্ত করুন তা নিশ্চিত করুন।
সাইমন.এসএ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.