146

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

4

29 回答 29

174

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

这适用于 IE 和 Firefox。铬不工作。ChromeDriver 项目为此提交了一个错误。

同时,chrome 的解决方法是实现 Joey V. 和 Coder323 的建议。

ChromeOptions options = new ChromeOptions();
options.addArgument("--start-maximized");
driver = new ChromeDriver(options);
于 2012-04-26T16:35:47.840 回答
52

爪哇

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

Python

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
于 2014-11-18T15:52:39.083 回答
43

对于 IE 和 Firefox:

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

对于铬:

ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
driver = new ChromeDriver( options )
于 2012-05-10T22:12:59.057 回答
42

将此功能添加到 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);");
}
于 2010-07-07T08:34:33.027 回答
18

测试步骤/场景:
1. 打开浏览器并导航到TestURL
2. 最大化浏览器

使用 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);
于 2012-07-24T09:27:12.333 回答
15

你可以使用这样的东西(C#):

driver.Manage().Window.Size = new Size(1024, 768);
于 2012-01-05T10:39:13.580 回答
8

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

    var capabilities = new DesiredCapabilities();

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

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

    new ChromeDriver(chromedriver_path, capabilities);
于 2011-10-21T16:57:02.937 回答
8

只需使用Window.Maximize()命令

WebDriver driver= new ChromeDriver()
driver.Manage().Window.Maximize();  
于 2017-08-31T07:35:11.067 回答
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);
于 2011-12-26T16:28:21.230 回答
6

对于 Java:

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

它适用于 IE、Mozilla、Chrome

于 2012-12-21T13:15:36.160 回答
5

我有同样的问题,但可以使用以下代码解决问题。

driver.manage().window().fullscreen();
于 2018-05-18T00:50:12.187 回答
4

对于 C#:

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

对于 Java:

driver.manage().window().maximize();
于 2015-03-25T09:50:24.173 回答
4

我们观察到新驱动程序库的错误。您可以使用能够处理新浏览器版本的稍微旧的 jar。

主要的通用选项是:-

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);
于 2017-08-07T09:06:24.023 回答
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# 一起使用以最大化浏览器。

于 2012-06-01T20:57:09.070 回答
2

您可以在 WebDriver中使用Selenium Emulation :

selenium = new WebDriverBackedSelenium(driver,url);
selenium.windowMaximize();
于 2010-07-14T19:29:59.717 回答
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);
于 2012-04-16T12:48:39.730 回答
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()
于 2010-09-03T15:31:44.823 回答
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”的引用

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

于 2012-02-10T17:10:54.367 回答
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);
于 2012-03-20T16:32:31.987 回答
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');
于 2013-09-17T18:47:54.317 回答
1

这个选项对我来说很好:

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

此选项适用于所有操作系统。

于 2017-02-24T06:43:56.317 回答
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”

于 2017-02-27T02:50:04.637 回答
1

对于铬

ChromeOptions options = new ChromeOptions();
IWebDriver driver = new ChromeDriver(options);
driver.Manage().Window.Maximize();
于 2021-10-23T10:48:45.243 回答
0

通过下面的代码,我可以最大化窗口,

((JavascriptExecutor) driver).executeScript("if(window.screen){
    window.moveTo(0, 0);
    window.resizeTo(window.screen.availWidth, window.screen.availHeight);
    };");
于 2012-05-17T08:57:05.993 回答
0

这对我来说很好。

Capybara.current_session.driver.browser.manage.window.resize_to(1800, 1000)
于 2012-12-11T05:09:09.023 回答
0

我尝试了上面的许多答案,但没有一个效果很好。我的 chrome 驱动程序版本是 2.7,而我使用 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);

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

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

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

但是这个命令在 selenium-java 中没有使用。这意味着您还可以自己将命令发送到 chrome。一旦我这样做了,它就起作用了。

于 2013-10-24T01:57:23.727 回答
0

Chrome 驱动程序已经支持:

爪哇:

webDriver = new ChromeDriver();
webDriver.manage().window().maximize();
于 2017-07-26T11:58:33.190 回答
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);
于 2018-02-15T13:09:10.540 回答
0

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

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

WebDriver driver = new ChromeDriver(options);
于 2020-05-08T13:07:22.037 回答