如何使用C#在Selenium WebDriver(Selenium 2)中最大化浏览器窗口?

时间:2010-07-06 19:12:08

标签: c# selenium selenium-webdriver

有没有办法使用WebDriver(Selenium 2)和C#最大化浏览器窗口?

26 个答案:

答案 0 :(得分:148)

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

适用于IE和Firefox。 Chrome无效。在ChromeDriver项目中提交了一个错误。

与此同时,镀铬的方法是实现Joey V.和Coder323的建议。

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

答案 1 :(得分:36)

将此功能添加到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);");
}

答案 2 :(得分:34)

对于IE和Firefox:

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

对于Chrome:

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

答案 3 :(得分:24)

的Java

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

的Python

driver.maximize_window()

红宝石

@driver.manage.window.maximize

OR

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

OR

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

答案 4 :(得分:15)

使用C#(。NET)最大化浏览器:

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

使用Java最大化浏览器:

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

使用Java的另一种方法:

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

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

答案 5 :(得分:8)

如果您使用的是Chrome驱动程序,则可以设置功能

    var capabilities = new DesiredCapabilities();

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

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

    new ChromeDriver(chromedriver_path, capabilities);

答案 6 :(得分:6)

只需使用Window.Maximize()命令

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

答案 7 :(得分:6)

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

答案 8 :(得分:5)

对于Java:

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

它可以在IE,Mozilla,Chrome中使用

答案 9 :(得分: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);

OR

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

答案 10 :(得分:4)

对于C#:

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

对于Java:

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

答案 11 :(得分: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);
}

我使用了Jim的代码,但略微修改了WatiN和C#以最大化浏览器。

答案 12 :(得分:2)

您可以在WebDriver中使用Selenium Emulation

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

答案 13 :(得分:1)

我遇到了同样的问题,但问题可以通过使用以下代码来解决。

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

答案 14 :(得分:1)

我使用了这个解决方案

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

答案 15 :(得分:1)

对于Webdriverjs(node.js),以下内容最大化了chrome窗口。

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

答案 16 :(得分:1)

这就是在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);

答案 17 :(得分: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);

<强> ===&GT;还添加了对.NET程序集“System.Windows.Forms”

的引用

...唯一的问题是它没有正确定位 ...如果你能纠正这个

,请发表评论

答案 18 :(得分: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”

答案 19 :(得分:1)

有一个函数可以用来最大化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()

答案 20 :(得分:0)

您可以尝试使用此代码来最大化chrome窗口。

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

WebDriver driver = new ChromeDriver(options);

答案 21 :(得分:0)

对我来说,使用Selenium Web Driver C#+ Chrome时,上述解决方案均无效:

  • window.resizeTo(1024,768); - 我想使用整个屏幕
  • --start-maximized - 会被忽略
  • driver.manage()。window()。maximize(); - 不起作用,因为它需要一些扩展名,我不允许使用Chrome扩展程序

我设法使用InputSimulator

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

答案 22 :(得分:0)

Chrome驱动程序已经支持:

爪哇:

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

答案 23 :(得分:0)

我尝试了上面的许多答案,但都没有奏效。 我的Chrome驱动程序版本是2.7,使用selenium-java vesion的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);

以上也行不通。我检查了镀铬驱动程序JsonWireProtocolhttp://code.google.com/p/selenium/wiki/JsonWireProtocol

chrome diver协议提供了一种最大化窗口的方法:

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

但是selenium-java中没有使用此命令。这意味着您也可以自己将命令发送给chrome。一旦我做到这一点就行了。

答案 24 :(得分:0)

这对我来说很好。

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

答案 25 :(得分:0)

通过以下代码,我能够最大化窗口,

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