C #에서 WebDriver (Selenium 2)를 사용하여 브라우저 창을 최대화 할 수있는 방법이 있습니까?
C #에서 WebDriver (Selenium 2)를 사용하여 브라우저 창을 최대화 할 수있는 방법이 있습니까?
답변:
http://code.google.com/p/selenium/issues/detail?id=174에서 추적 할 수있는 WebDriver에이 기능을 추가하는 데있어 현저한 문제가 있습니다 .
해결 방법은 다음을 사용하는 것입니다 JavascriptExector
.
public void resizeTest() {
driver.Navigate().GoToUrl("http://www.example.com/");
((IJavaScriptExecutor)driver).ExecuteScript("window.resizeTo(1024, 768);");
}
screen
객체를 사용하여 런타임에 가져올 수 있습니다 . 이러한 점을 고려하면 자바 스크립트는 아마도 다음과 window.moveTo(0,0); window.resizeTo(screen.width, screen.height);
driver.Manage().Window.Maximize();
이것은 IE와 Firefox에서 작동합니다. 크롬이 작동하지 않습니다. ChromeDriver 프로젝트에이 버그가 제출되었습니다.
한편 크롬의 문제는 Joey V.와 Coder323이 제안한 것을 구현하는 것입니다.
ChromeOptions options = new ChromeOptions();
options.addArgument("--start-maximized");
driver = new ChromeDriver(options);
AttributeError: 'WebDriver' object has no attribute 'Manage'
IE 및 Firefox의 경우 :
driver.manage().window().maximize();
Chrome의 경우 :
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);
테스트 단계 / 시나리오 :
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);
driver.manage().window().setPosition(new Point(0,0));
마지막 줄 앞에 추가 해야했습니다. 그렇지 않으면 창이 올바른 위치에 있지 않습니다.
단순히 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);
C #의 경우 :
driver.Manage().Window.Maximize();
Java의 경우 :
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");
사파리에서 이것을보십시오 :-
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);
WebDriver에서 Selenium Emulation 을 사용할 수 있습니다 .
selenium = new WebDriverBackedSelenium(driver,url);
selenium.windowMaximize();
파이썬에서 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 #에서 저에게 도움이 된 것은 다음과 같습니다.
사용에서 :
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);
아래 코드 줄은 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"를 누르는 브라우저 작업 메뉴를 불러옵니다.
위의 많은 답변을 시도했지만 아무것도 잘 작동하지 않습니다. 내 크롬 드라이버 버전은 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,
그러나이 명령은 selenium-java에서 사용되지 않습니다. 즉, 크롬으로 명령을 보냅니다. 내가 이것을하면 작동합니다.
나에게 Selenium Web Driver C # + Chrome을 사용할 때 위의 솔루션 중 어느 것도 효과가 없었습니다.
--start-maximized
-무시된다InputSimulator를 사용하여 작동하게 했습니다 .
var inputSim = new InputSimulator();
// WinKey + UP = Maximize focused window
inputSim.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.UP);
이 코드를 사용하여 크롬 창을 최대화 할 수 있습니다.
ChromeOptions options = new ChromeOptions();
options.addArguments("--window-size=1920,1080");
WebDriver driver = new ChromeDriver(options);