كيفية تعظيم نافذة المتصفح في Selenium WebDriver (Selenium 2) باستخدام C#؟

StackOverflow https://stackoverflow.com/questions/3189430

  •  02-10-2019
  •  | 
  •  

سؤال

هل هناك أي طريقة لتعظيم نافذة المتصفح باستخدام WebDriver (Selenium 2) مع C#؟

هل كانت مفيدة؟

المحلول

هناك مشكلة رائعة لإضافة هذه الوظيفة إلى WebDriver ، والتي يمكن تتبعها هنا: 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);");
}

نصائح أخرى

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

هذا يعمل ل IE و Firefox. Chrome لا يعمل. هناك خطأ مقدم لهذا في مشروع Chromedriver.

وفي الوقت نفسه ، فإن Get tound for the Chrome هو تنفيذ ما اقترحه Joey V. و Coder323.

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

ل IE و Firefox:

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

للكروم:

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

جافا

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

يمكنك استخدام شيء مثل هذا (C#):

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

تعظيم المتصفح مع 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);

إذا كنت تستخدم برنامج تشغيل Chrome ، فيمكنك ضبط القدرات

    var capabilities = new DesiredCapabilities();

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

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

    new ChromeDriver(chromedriver_path, capabilities);

ببساطة الاستخدام Window.Maximize() يأمر

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

عملت قصاصة رمز Selenium Java التالية بالنسبة لي:

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

لجافا:

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

ستعمل في IE ، Mozilla ، Chrome

لـ C#:

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

لجافا:

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

لقد لاحظنا خطأ مع مكتبات السائقين الجديدة. يمكنك استخدام الجرار القديمة قليلاً التي يمكنها التعامل مع إصدارات المتصفحات الجديدة.

الخيار العام الرئيسي هو:-

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

جرب هذا على Safari:-

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);
using System.Windows.Forms;
using System.Drawing;

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

لقد استخدمت رمز Jim ، لكن تم تعديله قليلاً للاستخدام مع Watin و C# لزيادة المتصفح إلى الحد الأقصى.

يمكنك استخدام مضاهاة السيلينيوم في WebDriver:

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

واجهت نفس المشكلة ، ولكن يمكن حل المشكلة باستخدام الكود التالي.

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

هناك وظيفة يمكنك استخدامها لزيادة النافذة في Python وهو 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()

برامج تشغيل العميل 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"

... المشكلة الوحيدة هي أنه لم يتم وضعه بشكل صحيح
... يرجى التعليق إذا كنت تستطيع تصحيح هذا

إليك ما نجح بالنسبة لي في C#، Firefoxdriver هو عالمي للفصل:

في الساعات:

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

لقد استخدمت هذا الحل

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

بالنسبة إلى 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');

هذا الخيار جيد بالنسبة لي:

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

هذا الخيار يعمل على جميع نظام التشغيل.

سطر الكود أدناه سيزيد من 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" بشكل أساسي لإظهار قائمة عمل المتصفح لتحديد "تعظيم" من الخيارات والضغط "Enter"

من خلال الرمز أدناه ، يمكنني زيادة النافذة إلى الحد الأقصى ،

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

هذا يعمل بشكل جيد بالنسبة لي.

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

جربت العديد من الإجابات أعلاه ، لكن لا شيء يعمل بشكل جيد. إصدار برنامج تشغيل Chrome الخاص بي هو 2.7 و IAM باستخدام Selenium-Java Vesion هو 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

يوفر بروتوكول الغواص Chrome طريقة لزيادة النافذة إلى الحد الأقصى:

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

لكن هذا الأمر لا يستخدم في السيلينيوم جافا. هذا يعني أنك ترسل أيضًا الأمر إلى Chrome بنفسك. بمجرد أن فعلت هذا ، فهو يعمل.

يدعم برنامج تشغيل Chrome بالفعل:

جافا:

webDriver = new ChromeDriver();
webDriver.manage().window().maximize();

بالنسبة لي ، لم يعمل أي من الحلول المذكورة أعلاه عند العمل مع سائق الويب Selenium C# + Chrome:

  • Window.Resizeto (1024 ، 768) ؛ - أريد استخدام الشاشة بأكملها
  • --start-maximized - يتم تجاهله
  • driver.manage (). window (). أقصى () ؛ - لا يعمل لأنه يتطلب بعض التمديد ولا يُسمح لي باستخدام امتدادات الكروم

تمكنت من تشغيلها باستخدام المدخلات:

var inputSim = new InputSimulator();
// WinKey + UP = Maximize focused window
inputSim.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.UP);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top