C # ব্যবহার করে সেলেনিয়াম ওয়েবড্রাইভার (সেলেনিয়াম 2) এর ব্রাউজার উইন্ডোটি কীভাবে সর্বোচ্চ করা যায়?


132

C # দিয়ে ওয়েবড্রাইভার (সেলেনিয়াম 2) ব্যবহার করে ব্রাউজার উইন্ডোটি সর্বাধিক করার কোনও উপায় আছে কি?


1
ওয়েবড্রাইভার ( কোড. google.com/p/selenium/?redir=1 ) মূলত কোড হিসাবে আপনাকে ওয়েব পৃষ্ঠাগুলি পরীক্ষা করতে দেয়।
রিফ্লাক্স

1
সেলেনিয়াম ওয়েবড্রাইভার হলেন সেলেনিয়াম আরসির উত্তরসূরি
রিপন আল ওয়াসিম

উত্তর:


38

ওয়েবড্রাইভারে এই কার্যকারিতা যুক্ত করার জন্য একটি অসামান্য সমস্যা রয়েছে, যা এখানে ট্র্যাক করা যেতে পারে: http://code.google.com/p/selenium/issues/detail?id=174

JavascriptExectorনিম্নোক্তভাবে ব্যবহার করার মতো কাজ হবে:

public void resizeTest() {
    driver.Navigate().GoToUrl("http://www.example.com/");
((IJavaScriptExecutor)driver).ExecuteScript("window.resizeTo(1024, 768);");
}

13
দুটি জিনিস: ১) আপনি যদি যত্নশীল হন তবে দৃশ্যমান যা আপনি উইন্ডোটিকে পূর্ণ স্ক্রিন তৈরির আগে উত্সে নিয়ে যেতে চান। 2) স্ক্রিনের মাত্রাগুলি যদি পরিবর্তনশীল হয় তবে জাভাস্ক্রিপ্ট screenঅবজেক্টের সাহায্যে এগুলি রান সময়ে পাওয়া যাবে । জাভাস্ক্রিপ্টটি বিবেচনায় রেখে এই বিষয়গুলি গ্রহণ করা সম্ভবত:window.moveTo(0,0); window.resizeTo(screen.width, screen.height);
গিলডেনক্র্যান্টজ

4
নোট করুন যে ম্যাকের ফায়ারফক্সে উইন্ডোটি (0,0) এ সরিয়ে নিয়ে যাওয়ার একটি সমস্যা রয়েছে। এটি সঠিকভাবে এর শিরোনামের অঞ্চলের জন্য অ্যাকাউন্ট না করে বলে মনে হচ্ছে। উইন্ডোটি (0,1) এ সরিয়ে নেওয়া আসলে এটি (0,0) এ সরিয়ে নিয়েছে বলে মনে হচ্ছে, সুতরাং একটি বাগ অন্যটিকে সহায়তা করে। এই মুহুর্তে আপনি উইন্ডোটি যথাযথভাবে সর্বাধিক করতে পারেন।
nirvdrum

জাভাস্ক্রিপ্টএক্সেক্টর উদাহরণ হওয়া উচিত IJavaScriptExecutor
TuGordoBello

160

driver.Manage().Window.Maximize();

এটি IE এবং ফায়ারফক্সের জন্য কাজ করে। ক্রোম কাজ করে না। ChromeDriver প্রকল্পে এর জন্য একটি বাগ জমা দেওয়া হয়েছে।

এদিকে, ক্রোমের সাথে জড়িত হওয়া জো জো এবং ভি কোডার ৩৩৩ এর পরামর্শ কার্যকর করেছে implement

ChromeOptions options = new ChromeOptions();
options.addArgument("--start-maximized");
driver = new ChromeDriver(options);

1
ফায়ারফক্সের জন্য এই পদ্ধতিটি কেবলমাত্র কাজ করে, জাভাস্ক্রিপ্ট সেলেনিয়াম ২.২১-এ কোনও চিহ্ন দেয় না
স্যাম আদমশ

6
ক্ষেত্রে সংবেদনশীল জাভা => ড্রাইভার.manage ()। উইন্ডো ()। সর্বাধিক ();
জানাআআ

AttributeError: 'WebDriver' object has no attribute 'Manage'
ব্যবহারকারী

আমরা হব. আমি ধন্যবাদ বলব :) এটি আমার ক্রোমড্রাইভারে কাজ করে।
জিন

আমি সেলেনিয়াম ওয়েবড্রাইভার 3.3.0 এর সাথে এফএফ 5 ব্যবহার করছি। । driver.Manage () Window.Maximize (); আমার জন্য কাজ করে
রিপন আল ওয়াসিম

37

আইই এবং ফায়ারফক্সের জন্য:

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

ক্রোমের জন্য:

ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
driver = new ChromeDriver( options )

4
সি # এটি এর মতো। । driver.Manage () Window.Maximize ();
ক্রিস হকস

। driver.manage () জানালা () পূর্ণবিস্তার ()। ক্রোমের পাশাপাশি কাজ করে
মোসাদ

ধন্যবাদ ক্রিস, সি # এর বড় হাতের পদ্ধতি দরকার: এটি। । driver.Manage () Window.Maximize ();
এলএ গাই 88

35

জাভা

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

পাইথন

driver.maximize_window()

চুনি

@driver.manage.window.maximize

অথবা

max_width, max_height = driver.execute_script("return [window.screen.availWidth, window.screen.availHeight];")
@driver.manage.window.resize_to(max_width, max_height)

অথবা

target_size = Selenium::WebDriver::Dimension.new(1600, 1268)
@driver.manage.window.size = target_size

15

আপনি এর মতো কিছু ব্যবহার করতে পারেন (সি #):

driver.Manage().Window.Size = new Size(1024, 768);

2
দুর্ভাগ্যক্রমে ক্রোমড্রাইভারের জন্য এটি ছোঁড়া এবং ব্যতিক্রম। যদিও IE এবং ফায়ারফক্সের জন্য সূক্ষ্মভাবে কাজ করে।
ব্রায়ান অলরেড

সেলেনিয়াম সি # এর সাথে এই কোডটি ব্যবহার করা এখনই ঠিকঠাক কাজ করা উচিত যেহেতু ChromeDriver এখন গুগল সরবরাহ করেছে (যদিও এটি সেলেনিয়াম 3 এর জন্য)) বিকল্পভাবে আপনি সর্বোচ্চ ফাংশনটি ব্যবহার করতে পারেন বা কেবল বিকল্পগুলির মাধ্যমে নিম্নলিখিত যুক্তি যুক্ত করতে পারেন: "--start-maximized"
user1841243

15

পরীক্ষার পদক্ষেপ / দৃশ্য:
1. একটি ব্রাউজার খুলুন এবং পরীক্ষা URL এ নেভিগেট করুন
করুন 2. ব্রাউজারটি করুন

সি # (। নেট) দিয়ে ব্রাউজারটি সর্বাধিক করুন:

driver.Manage().Window.Maximize();

জাভা দিয়ে ব্রাউজারটি সর্বোচ্চ করুন:

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

জাভা দিয়ে অন্য উপায়:

Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension screenResolution = new Dimension((int) 
                    toolkit.getScreenSize().getWidth(), (int) 
                    toolkit.getScreenSize().getHeight());

driver.manage().window().setSize(screenResolution);

এটি sun.awt.HeadlessToolkit.getScreenSize (HeadlessToolkit.javaferences84) এ java.awt.HadadlessException এর সাথে ক্রোম ডকার ধারক ক্ষেত্রে ব্যর্থ হয়। আপনি আগে এই সমস্যা সম্মুখীন হয়েছে?
বিক্রমভি

আমি ড্রাইভারের সাথে চেষ্টা করেছি। ম্যানেজ ()। উইন্ডো.ম্যাক্সিমাইজ (); এফএফ-তে সেলেনিয়াম ওয়েবড্রাইভার সি # তে এবং এটি ভালভাবে কাজ করেছে। আমি এখনও ক্রোম দিয়ে চেষ্টা করিনি।
রিপন আল ওয়াসিম

এটি আমার পক্ষে কাজ করেছে তবে driver.manage().window().setPosition(new Point(0,0));শেষ লাইনের আগে আমাকে যুক্ত করতে হয়েছিল বা উইন্ডোটি সঠিক অবস্থানে থাকবে না।
সোয়ানহেলা

স্বনহেলা: ভাগ করে নেওয়ার জন্য ধন্যবাদ
রিপন আল ওয়াসিম

8

আপনি যদি ক্রোম ড্রাইভার ব্যবহার করেন তবে আপনি ক্ষমতাগুলি সেট করতে পারেন

    var capabilities = new DesiredCapabilities();

    var switches = new List<string>
                       {
                           "--start-maximized"
                       };

    capabilities.SetCapability("chrome.switches", switches);

    new ChromeDriver(chromedriver_path, capabilities);

7

Window.Maximize()কমান্ডটি সহজভাবে ব্যবহার করুন

WebDriver driver= new ChromeDriver()
driver.Manage().Window.Maximize();  

6

নিম্নলিখিত সেলেনিয়াম জাভা কোড স্নিপেট আমার জন্য কাজ করেছে:

driver.manage().window().setPosition(new Point(0,0));
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
Dimension dim = new Dimension((int) screenSize.getWidth(), (int) screenSize.getHeight());
driver.manage().window().setSize(dim);

5

জাভার জন্য:

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

এটি আইই, মজিলা, ক্রোমে কাজ করবে


কীভাবে আমি অ্যান্ড্রয়েডড্রাইভারের জন্য একই সেট করতে পারি ();
কার্তিক

5

আমার একই সমস্যা ছিল, তবে নিম্নলিখিত কোড ব্যবহার করে সমস্যাটি সমাধান করা যেতে পারে।

driver.manage().window().fullscreen();


4

আমরা নতুন ড্রাইভার লাইব্রেরি সহ বাগ পর্যবেক্ষণ করেছি। আপনি সামান্য পুরানো জারগুলি ব্যবহার করতে পারেন যা নতুন ব্রাউজার সংস্করণগুলি পরিচালনা করতে সক্ষম।

মূল জেনেরিক বিকল্পটি হ'ল: -

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

আপনি ব্রাউজার উইন্ডো সর্বাধিককরণের জন্য অন্যান্য বিকল্পও ব্যবহার করতে পারেন।

উদাহরণ: -

নীচের বিকল্পটি যুক্ত করুন এবং এটি ড্রাইভারকে দিন: -

    chromeOptions.addArguments("--start-maximized");

পুরো কোডটি নীচের মত দেখাবে: -

System.setProperty("webdriver.chrome.driver","D:\\Workspace\\JmeterWebdriverProject\\src\\lib\\chromedriver.exe");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--start-maximized");
driver = new ChromeDriver(chromeOptions);

অথবা

Toolkit toolkit = Toolkit.getDefaultToolkit();
int Width = (int) toolkit.getScreenSize().getWidth();
int Height = (int)toolkit.getScreenSize().getHeight();
//For Dimension class, Import following library "org.openqa.selenium.Dimension"  
driver.manage().window().setSize(new Dimension(Width,Height));
driver.get("https://google.com");

সাফারিতে এটি ব্যবহার করে দেখুন: -

JavascriptExecutor jse = (JavascriptExecutor)driver;
String screenWidth = jse.executeScript("return screen.availWidth").toString();
String screenHeight = jse.executeScript("return screen.availHeight").toString();
int intScreenWidth = Integer.parseInt(screenWidth);
int intScreenHeight = Integer.parseInt(screenHeight);
Dimension d = new Dimension(intScreenWidth, intScreenHeight);
driver.manage.window.setSize(d);

3
using System.Windows.Forms;
using System.Drawing;

public static void MaximizeBrowser(this IE myBrowser)
{
    myBrowser.SizeWindow(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
}

আমি জিমের কোড ব্যবহার করেছি, তবে ব্রাউজারটি সর্বাধিকীকরণের জন্য ওয়াটিএন এবং সি # এর সাথে ব্যবহারের জন্য সামান্য সংশোধন করেছি।


2

আপনি ওয়েবড্রাইভারে সেলেনিয়াম এমুলেশন ব্যবহার করতে পারেন :

selenium = new WebDriverBackedSelenium(driver,url);
selenium.windowMaximize();

1
তাদের ওয়েবড্রাইভারের সি # সংস্করণে সেলেনিয়াম এমুলেশন নেই। কমপক্ষে এখনও 2.0a4 এ হয়নি (তারা দেখেছেন যে তারা একটি নতুন সংস্করণ প্রকাশ করেছেন যদিও এটি এখনও পরীক্ষা করে দেখেনি)। তবে উপরের জাভাস্ক্রিপ্ট কোড দুর্দান্ত কাজ করে।
রিফ্লাক্স

এবং এটি আইফোনড্রাইভারকে সমর্থন করে না, উদাহরণস্বরূপ
আইলিয়াস কার্ট

দুর্ভাগ্যক্রমে WebDriverBackedSelenium.windowMaximize () ফায়ারফক্স 7 বা Chrome 14 এ কাজ করে না (যদিও এটি IE8 তে কাজ করে) does পর্দার আড়ালে এটি একটি উইন্ডো প্রকাশিত করে) @ জো-ভি এর সমাধান ক্রোমের পক্ষে কাজ করে। এবং লুক ইনমান-সেমেরাউ এখানে একটি সমাধান পোস্ট করেছেন ;
অ্যান্ড্রু নিউডিগেট

2

আমি এই সমাধানটি ব্যবহার করেছি

            OpenQA.Selenium.Chrome.ChromeOptions chromeoptions = new OpenQA.Selenium.Chrome.ChromeOptions();
            chromeoptions.AddArgument("--start-maximized");
            OpenQA.Selenium.Chrome.ChromeDriver chrome = new OpenQA.Selenium.Chrome.ChromeDriver(chromeoptions);

1

পাইথনের উইন্ডো সর্বাধিক করার জন্য একটি ফাংশন রয়েছে যা উইন্ডো_ম্যাক্সিমাইজ ()। এবং এটিই আমি এটি ব্যবহার করছি। আশা করি এটি সহায়তা করে -

from selenium import selenium
sel = selenium('localhost', 4444, '*firefox', 'http://10.77.21.67/')
sel.start()
sel.open('/')
sel.wait_for_page_to_load(60000)
#sel.window_focus()
sel.window_maximize()
png = sel.capture_screenshot_to_string()
f = open('screenshot.png', 'wb')
f.write(png.decode('base64'))
f.close()
sel.stop()

1

সি # ক্লায়েন্ট ড্রাইভার:

driver = new FirefoxDriver(firefoxProfile);
driver.Manage().Window.Size = new System.Drawing.Size(System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width+10, System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height+10);

===> .NET সমাবেশ "সিস্টেম. উইন্ডোজ.ফর্মস" এ একটি রেফারেন্স যুক্ত করুন

... একমাত্র সমস্যা হ'ল এটি সঠিকভাবে অবস্থিত নয়
... আপনি যদি এটি সংশোধন করতে পারেন তবে দয়া করে মন্তব্য করুন


1

সি # তে আমার জন্য যা কাজ করেছে তা এখানে, ফায়ারফক্সড্রাইভার শ্রেণিতে বিশ্বব্যাপী:

ব্যবহারে:

using System.Drawing;
using System.Windows.Forms;

কোডে:

this.firefoxDriver = new FirefoxDriver();
this.firefoxDriver.Manage().Window.Position = new Point(0, 0);
this.firefoxDriver.Manage().Window.Size = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);

1

Webdriverjs (node.js) এর জন্য, নিম্নলিখিত ক্রোম উইন্ডোটি সর্বাধিক করে তোলে।

var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).build();
driver.manage().window().maximize();
driver.get('hxxp://localhost:8888');

1

এই বিকল্পটি আমার পক্ষে ভাল:

ChromeOptions options = new ChromeOptions();
options.addArguments("start-fullscreen");

এই বিকল্পটি সমস্ত ওএসে কাজ করে।


1

নীচের কোডের লাইনটি আইই, ক্রোম এবং মজিলাকে সর্বাধিকীকরণ করবে

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

পোস্টে উল্লিখিত কোডের উপরের লাইন এবং অন্যান্য কাজের ক্ষেত্রগুলি নোডওয়েবকিট ব্রাউজারের জন্য কাজ করে না, সুতরাং কাজের হিসাবে আমাকে নীচের বর্ণিত নেটিভ সি # কোড ব্যবহার করতে হয়েছিল:

public static void MaximiseNWKBrowser(IWebDriver d)
        {
            var body = UICommon.GetElement(By.TagName("body"), d);
            body.Click();
            string alt = "%";
            string space = " ";
            string down = "{DOWN}";
            string enter = "{ENTER}";
            SendKeys.SendWait(alt + space);
            for(var i = 1; i <= 6; i++)
            {
                SendKeys.SendWait(down);
            }
            SendKeys.SendWait(enter);            
        }

সুতরাং এই কর্মপরিকল্পনাটি বিকল্পগুলি এবং "ENTER" থেকে "MAXIMIZE" নির্বাচন করতে ব্রাউজারের ক্রিয়া মেনুটি আনতে মূলত "ALT + SPACE" ব্যবহার করে


0

নীচের কোডের মাধ্যমে আমি উইন্ডোটি সর্বাধিক করতে সক্ষম হয়েছি,

((JavascriptExecutor) driver).executeScript("if(window.screen){
    window.moveTo(0, 0);
    window.resizeTo(window.screen.availWidth, window.screen.availHeight);
    };");

0

এটা আমার জন্য ভাল কাজ করছে।

Capybara.current_session.driver.browser.manage.window.resize_to(1800, 1000)

0

আমি উপরের উত্তরগুলির অনেকগুলি চেষ্টা করেছিলাম, তবে কোনওটিই ভাল কাজ করে না। আমার ক্রোম ড্রাইভারের সংস্করণটি 2.7 এবং সেলেনিয়াম-জাভা ভেরেন ব্যবহার করে আইএমটি 2.9.0। অফিসিয়াল ডকুমেন্টটি ব্যবহারের পরামর্শ দেয়:

var capabilities = new DesiredCapabilities();
var switches = new List<string>
                       {
                           "--start-maximized"
                       };
capabilities.SetCapability("chrome.switches", switches);    
new ChromeDriver(chromedriver_path, capabilities);

উপরেরটিও কাজ করে না। আমি ক্রোম ড্রাইভারটি পরীক্ষা করেছি JsonWireProtocol: http://code.google.com/p/selenium/wiki/JsonWireProtocol

ক্রোম ডুবুরি প্রোটোকল উইন্ডো সর্বাধিক করার একটি পদ্ধতি সরবরাহ করে:

/session/:sessionId/window/:windowHandle/maximize,

তবে এই কমান্ডটি সেলেনিয়াম-জাভাতে ব্যবহৃত হয় না। এর অর্থ আপনি নিজে ক্রোমে কমান্ডটি প্রেরণ করেন। একবার আমি এটি কাজ করে।



0

আমার জন্য, সেলেনিয়াম ওয়েব ড্রাইভার সি # + ক্রোমের সাথে কাজ করার সময় উপরের কোনও সমাধান সমাধান করেনি:

  • window.resizeTo (1024, 768); - আমি পুরো পর্দা ব্যবহার করতে চাই
  • --start-maximized - এটি উপেক্ষা করা হয়
  • । driver.manage () জানালা () পূর্ণবিস্তার ()। - কাজ করে না কারণ এর জন্য কিছু এক্সটেনশান দরকার এবং আমাকে ক্রোম এক্সটেনশনগুলি ব্যবহার করার অনুমতি দেওয়া হচ্ছে না

আমি ইনপুটসিমুলেটর ব্যবহার করে এটি কাজ করার ব্যবস্থা করেছিলাম :

var inputSim = new InputSimulator();
// WinKey + UP = Maximize focused window
inputSim.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.UP);

0

ক্রোম উইন্ডো সর্বাধিক করতে আপনি এই কোডটি দিয়ে চেষ্টা করতে পারেন।

ChromeOptions options = new ChromeOptions();
options.addArguments("--window-size=1920,1080");

WebDriver driver = new ChromeDriver(options);

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