如何使用C#最大化Selenium WebDriver(Selenium 2)中的浏览器窗口?
有什么办法使用WebDriver(Selenium 2)与C#最大化浏览器窗口?
在WebDriver中添加此function存在一个突出问题,可以在此处进行跟踪: 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项目上有一个bug提交。
与此同时,镀铬的解决scheme是实施Joey V.和Coder323提出的build议。
ChromeOptions options = new ChromeOptions(); options.addArgument("--start-maximized"); driver = new ChromeDriver(options);
对于IE和Firefox:
driver.manage().window().maximize();
对于Chrome:
ChromeOptions options = new ChromeOptions(); options.addArguments("--start-maximized"); driver = new ChromeDriver( options )
你可以使用这样的东西(C#):
driver.Manage().Window.Size = new Size(1024, 768);
使用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);
Java的
driver.manage().window().maximize();
python
driver.maximize_window()
ruby
@driver.manage.window.maximize
如果您使用Chrome驱动程序,则可以设置function
var capabilities = new DesiredCapabilities(); var switches = new List<string> { "--start-maximized" }; capabilities.SetCapability("chrome.switches", switches); new ChromeDriver(chromedriver_path, capabilities);
这对我工作:
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);
对于Java:
driver.manage().window().maximize();
它将在IE,Mozilla,Chrome中运行
对于C#:
driver.Manage().Window.Maximize();
对于Java:
driver.manage().window().maximize();
您可以在WebDriver中使用Selenium仿真 :
selenium = new WebDriverBackedSelenium(driver,url); selenium.windowMaximize();
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#以最大化浏览器。
有一个函数可以用来最大化window_maximize()中的Python窗口。 这就是我如何使用它。希望这有助于 –
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);
我用这个解决scheme
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”来调出浏览器的动作菜单,从选项中select“MAXIMIZE”并按下“ENTER”
我们观察到新驱动程序库的错误。 您可以使用能够处理新浏览器版本的稍旧的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);
只需使用Window.Maximize()
命令
WebDriver driver= new ChromeDriver() driver.Manage().Window.Maximize();
通过下面的代码,我能够最大化的窗口,
((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,使用selenium-java vesion的Iam是2.9.0。 官方文件build议使用:
var capabilities = new DesiredCapabilities(); var switches = new List<string> { "--start-maximized" }; capabilities.SetCapability("chrome.switches", switches); new ChromeDriver(chromedriver_path, capabilities);
以上也不起作用。 我检查了Chrome驱动程序JsonWireProtocol
: http : //code.google.com/p/selenium/wiki/JsonWireProtocol
铬潜水员协议提供了一种方法来最大化窗口:
/session/:sessionId/window/:windowHandle/maximize,
但是这个命令在selenium-java中没有使用。 这意味着你也可以发送命令给自己chrome。 一旦我做到了这一点的作品。
Chrome驱动程序已经支持:
Java的:
webDriver = new ChromeDriver(); webDriver.manage().window().maximize();