सेल # का उपयोग करके सेलेनियम वेबड्राइवर (सेलेनियम 2) में ब्राउज़र विंडो को अधिकतम कैसे करें?


132

क्या वेब विंडो (सेलेनियम 2) का उपयोग करके सी # के साथ ब्राउज़र विंडो को अधिकतम करने का कोई तरीका है?


1
WebDriver ( code.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
दो बातें: 1) यदि आप परवाह करते हैं कि आप जो दिखाई दे रहे हैं, तो संभवत: पूर्ण स्क्रीन बनाने से पहले विंडो को मूल में ले जाना चाहते हैं। 2) यदि स्क्रीन आयाम परिवर्तनशील हैं, तो आप उन्हें जावास्क्रिप्ट screenऑब्जेक्ट के साथ रन टाइम पर प्राप्त कर सकते हैं । इन बिंदुओं को ध्यान में रखते हुए जावास्क्रिप्ट संभवतः होना चाहिए:window.moveTo(0,0); window.resizeTo(screen.width, screen.height);
गिल्डेंक्रांटज़

4
ध्यान दें कि मैक पर फ़ायरफ़ॉक्स में विंडो को (0,0) ले जाने का एक मुद्दा है। यह अपने हेडर क्षेत्र के लिए ठीक से खाता नहीं प्रतीत होता है। विंडो को (0,1) पर ले जाना वास्तव में इसे (0,0) पर ले जाता है, हालांकि, एक बग दूसरे की मदद करता है। उस बिंदु पर आप विंडो को ठीक से अधिकतम कर सकते हैं।
निर्वद्रुम

JavascriptExecutor उदाहरण IJavaScriptExecutor होना चाहिए
TuGordoBello

160

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

यह IE और फ़ायरफ़ॉक्स के लिए काम करता है। क्रोम काम नहीं करता है। ChromeDriver प्रोजेक्ट पर इसके लिए एक बग सबमिट किया गया है।

इस बीच, क्रोम के लिए चारों ओर पाने के लिए जोय वी और कोडर 323 का सुझाव दिया गया है।

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

1
फ़ायरफ़ॉक्स के लिए इस तरह से एक ही काम करता है, जावास्क्रिप्ट सेलेनियम 2.21 पर कोई भी काम नहीं करता है
सैम एडम्स

6
केस संवेदी जावा के लिए => driver.manage ()। विंडो ()। अधिकतम ();
जनाब

AttributeError: 'WebDriver' object has no attribute 'Manage'
उपयोगकर्ता

कुंआ। मैं धन्यवाद कहूंगा :) यह मेरे क्रोमेड्रिवर पर काम करता है।
शिन

मैं सेलेनियम वेबड्राइवर 3.3.0 के साथ FF53 का उपयोग कर रहा हूं। । driver.Manage () Window.Maximize (); मेरे लिए काम करता है
रिपन अल वसीम

37

IE और फ़ायरफ़ॉक्स के लिए:

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

आप कुछ इस तरह से उपयोग कर सकते हैं (C #):

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

2
दुर्भाग्य से यह क्रोमड्राइवर के लिए फेंकता और अपवाद है। हालांकि IE और फ़ायरफ़ॉक्स के लिए ठीक काम करता है।
ब्रायन एलेड

सेलेनियम C # के साथ इस कोड का उपयोग करना अब ठीक काम करना चाहिए क्योंकि ChromeDriver अब Google द्वारा प्रदान किया गया है (हालांकि यह सेलेनियम 3 के लिए है)। वैकल्पिक रूप से आप अधिकतम फ़ंक्शन का उपयोग कर सकते हैं या केवल विकल्पों के माध्यम से निम्नलिखित तर्क जोड़ सकते हैं: "--start-maximized"
user1841243

15

परीक्षण चरण / परिदृश्य:
1. ब्राउज़र खोलें और TesturL पर नेविगेट करें
। 2. ब्राउज़र को अधिकतम करें

ब्राउज़र को C # (.NET) के साथ अधिकतम करें:

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);

यह त्रुटि java.awt.HeadlessException के साथ sun.awt.eadlessToolkit.getScreenSize (HeadlessToolkit.java:284) पर क्रोम डॉकटर कंटेनर के मामले में विफल रहता है। क्या आपने पहले इस मुद्दे का सामना किया था?
विक्रमवी

मैंने ड्राइवर के साथ प्रयास किया। मैनेज ()। Window.Maximize (); एफएफ पर सेलेनियम वेबड्राइवर सी # में और इसने अच्छा काम किया। मैंने अभी तक Chrome के साथ प्रयास नहीं किया था।
रिपन अल वसीम

यह मेरे लिए काम करता है लेकिन मुझे driver.manage().window().setPosition(new Point(0,0));अंतिम पंक्ति से पहले जोड़ना पड़ता है या खिड़की सही स्थिति में नहीं होती है।
स्वानहल्ला

swanhella: इसे साझा करने के लिए धन्यवाद
रिपन अल वसीम

8

यदि आप Chrome ड्राइवर का उपयोग कर रहे हैं तो आप क्षमताएं सेट कर सकते हैं

    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();

यह IE, मोज़िला, क्रोम में काम करेगा


मैं AndroidDriver () के लिए एक ही सेट कैसे कर सकता हूं;
कार्तिक

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);
}

मैंने जिम के कोड का उपयोग किया, लेकिन ब्राउज़र को अधिकतम करने के लिए WatiN और C # के साथ उपयोग के लिए थोड़ा संशोधित किया गया।


2

आप WebDriver में सेलेनियम एमुलेशन का उपयोग कर सकते हैं :

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

1
वे Webdriver के C # संस्करण में सेलेनियम अनुकरण नहीं है। कम से कम अभी तक 2.0a4 में नहीं है (बस देखा कि उन्होंने एक नया संस्करण जारी किया है, हालांकि अभी तक इसकी जाँच नहीं की है)। हालाँकि उपरोक्त जावास्क्रिप्ट कोड बहुत अच्छा काम करता है।
रीफ्लक्स

और यह iPhoneDriver का समर्थन नहीं करता है, उदाहरण के लिए
Iulius कर्ट

दुर्भाग्य से WebDriverBackedSelenium.windowMaximize () फ़ायरफ़ॉक्स 7 या क्रोम 14 में काम नहीं करता है (हालांकि यह IE8 में काम करता है)। पर्दे के पीछे यह एक window.resize () जावास्क्रिप्ट कमांड जारी करता है, लेकिन ये दोनों ब्राउज़र इसे अनदेखा करते हैं। @ joey-v का समाधान Chrome के लिए काम करता है। और ल्यूक इनमैन-सेमारू ने यहां एक समाधान पोस्ट किया ;
एंड्रयू न्यूड्रेट

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

एक फ़ंक्शन है जिसे आप पायथन में विंडो को अधिकतम करने के लिए उपयोग कर सकते हैं जो window_maximize () है। और यह है कि मैं इसे कैसे उपयोग कर रहा हूँ। यह मदद करता है -

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

C # क्लाइंट ड्राइवर:

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 असेंबली "System.Windows.Forms" के लिए एक संदर्भ भी जोड़ें

... एकमात्र समस्या यह है कि यह सही तरीके से स्थित नहीं है
... कृपया टिप्पणी करें कि क्या आप इसे ठीक कर सकते हैं


1

यहाँ C # में मेरे लिए क्या काम किया गया है, फ़ायरफ़ॉक्सड्राइवर वर्ग के लिए वैश्विक है:

usings में:

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 (नोड.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

कोड की निचली रेखा IE, Chrome और Mozilla को अधिकतम करेगी

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

पोस्ट में उल्लिखित कोड और अन्य वर्कअराउंड की लाइन NodeWebKit ब्राउज़र के लिए काम नहीं करती थी, इसलिए वर्कअराउंड के रूप में मुझे नीचे बताए अनुसार देशी C # कोड का उपयोग करना था:

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);            
        }

तो यह समाधान मूल रूप से "ALT + SPACE" का उपयोग करता है विकल्पों में से "MAXIMIZE" का चयन करने के लिए ब्राउज़र कार्रवाई मेनू को लाने के लिए और "ENTER" दबाता है।


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 है और सेलेनियम-जावा वेसन का उपयोग करते हुए Iam 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

मेरे लिए, ऊपर दिए गए किसी भी समाधान ने सेलेनियम वेब ड्राइवर C # + Chrome के साथ काम करते समय काम नहीं किया:

  • 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 अन्य उत्तर हैं; यह कॉल करने के लायक है जो आपके उत्तरों को मौजूदा उत्तरों से अलग करता है। क्या आप अतिरिक्त विस्तार के साथ अपने प्रश्न को अपडेट करना चाहेंगे?
जेरेमी कैनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.