Có cách nào để tối đa hóa cửa sổ trình duyệt bằng WebDriver (Selenium 2) với C # không?
Có cách nào để tối đa hóa cửa sổ trình duyệt bằng WebDriver (Selenium 2) với C # không?
Câu trả lời:
Có một vấn đề nổi bật để thêm chức năng này vào WebDriver, có thể được theo dõi tại đây: http://code.google.com.vn/p/selenium/issues/detail?id=174
Một cách giải quyết khác là sử dụng JavascriptExector
như sau:
public void resizeTest() {
driver.Navigate().GoToUrl("http://www.example.com/");
((IJavaScriptExecutor)driver).ExecuteScript("window.resizeTo(1024, 768);");
}
screen
đối tượng javascript . Cân nhắc những điểm này có thể là javascript:window.moveTo(0,0); window.resizeTo(screen.width, screen.height);
driver.Manage().Window.Maximize();
Điều này hoạt động cho IE và Firefox. Chrome không hoạt động. Có một lỗi được gửi cho dự án ChromeDriver này.
Trong khi đó, xung quanh cho chrome là để thực hiện những gì Joey V. và Coder323 đề xuất.
ChromeOptions options = new ChromeOptions();
options.addArgument("--start-maximized");
driver = new ChromeDriver(options);
AttributeError: 'WebDriver' object has no attribute 'Manage'
Đối với IE và Firefox:
driver.manage().window().maximize();
Đối với Chrome:
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
driver = new ChromeDriver( options )
driver.manage().window().maximize();
driver.maximize_window()
@driver.manage.window.maximize
HOẶC LÀ
max_width, max_height = driver.execute_script("return [window.screen.availWidth, window.screen.availHeight];")
@driver.manage.window.resize_to(max_width, max_height)
HOẶC LÀ
target_size = Selenium::WebDriver::Dimension.new(1600, 1268)
@driver.manage.window.size = target_size
Bạn có thể sử dụng một cái gì đó như thế này (C #):
driver.Manage().Window.Size = new Size(1024, 768);
Bước / kịch bản kiểm tra:
1. Mở trình duyệt và điều hướng đến TestURL
2. Tối đa hóa trình duyệt
Tối đa hóa trình duyệt với C # (.NET):
driver.Manage().Window.Maximize();
Tối đa hóa trình duyệt với Java:
driver.manage().window().maximize();
Một cách khác để làm với 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));
trước dòng cuối cùng hoặc cửa sổ sẽ không ở đúng vị trí.
Nếu bạn đang sử dụng Trình điều khiển Chrome, bạn có thể đặt các khả năng
var capabilities = new DesiredCapabilities();
var switches = new List<string>
{
"--start-maximized"
};
capabilities.SetCapability("chrome.switches", switches);
new ChromeDriver(chromedriver_path, capabilities);
Đơn giản chỉ cần sử dụng Window.Maximize()
lệnh
WebDriver driver= new ChromeDriver()
driver.Manage().Window.Maximize();
Đoạn mã Selenium Java sau đây hoạt động với tôi:
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);
Đối với Java:
driver.manage().window().maximize();
Nó sẽ hoạt động trong IE, Mozilla, Chrome
Đối với C #:
driver.Manage().Window.Maximize();
Đối với Java:
driver.manage().window().maximize();
Chúng tôi đã quan sát lỗi với các thư viện trình điều khiển mới. Bạn có thể sử dụng các lọ hơi cũ có thể xử lý các phiên bản trình duyệt mới.
Tùy chọn chung chính là: -
driver.manage().window().maximize();
Bạn cũng có thể sử dụng tùy chọn khác để tối đa hóa cửa sổ trình duyệt.
Thí dụ:-
Thêm tùy chọn bên dưới và chuyển nó cho trình điều khiển: -
chromeOptions.addArguments("--start-maximized");
Mã đầy đủ sẽ như dưới đây: -
System.setProperty("webdriver.chrome.driver","D:\\Workspace\\JmeterWebdriverProject\\src\\lib\\chromedriver.exe");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--start-maximized");
driver = new ChromeDriver(chromeOptions);
HOẶC LÀ
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");
Hãy thử điều này trên 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);
}
Tôi đã sử dụng mã của Jim, nhưng được sửa đổi một chút để sử dụng với WatiN và C # để tối đa hóa trình duyệt.
Bạn có thể sử dụng Mô phỏng Selen trong WebDriver:
selenium = new WebDriverBackedSelenium(driver,url);
selenium.windowMaximize();
Có một hàm mà bạn có thể sử dụng để tối đa hóa cửa sổ trong Python đó là window_maxizing (). Và đây là cách tôi đang sử dụng nó. Hy vọng điều này sẽ giúp -
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()
Trình điều khiển máy khách 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);
===> cũng thêm một tham chiếu đến cụm .NET "System.Windows.Forms"
... vấn đề duy nhất là nó không được đặt đúng vị trí
... vui lòng bình luận nếu bạn có thể sửa lỗi này
Đây là những gì làm việc cho tôi trong C #, firefoxDriver là toàn cầu cho lớp:
trong các ứng dụng:
using System.Drawing;
using System.Windows.Forms;
trong mã:
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);
Dòng mã dưới đây sẽ tối đa hóa IE, Chrome và Mozilla
driver.manage().window().maximize();
Dòng mã trên và các cách giải quyết khác được đề cập trong bài đăng không hoạt động đối với trình duyệt NodeWebKit, vì vậy, một cách giải quyết khác tôi phải sử dụng mã C # gốc như được đề cập dưới đây:
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);
}
Vì vậy, cách giải quyết này về cơ bản sử dụng "ALT + KHÔNG GIAN" để hiển thị menu hành động của trình duyệt để chọn "TỐI ĐA" từ các tùy chọn và nhấn "ENTER"
Tôi đã thử nhiều câu trả lời ở trên, nhưng không có câu nào hoạt động tốt. Phiên bản trình điều khiển chrome của tôi là 2.7 và Iam sử dụng selenium-java vesion là 2.9.0. Tài liệu chính thức đề nghị sử dụng:
var capabilities = new DesiredCapabilities();
var switches = new List<string>
{
"--start-maximized"
};
capabilities.SetCapability("chrome.switches", switches);
new ChromeDriver(chromedriver_path, capabilities);
Ở trên cũng không hoạt động. Tôi đã kiểm tra trình điều khiển chrome JsonWireProtocol
:
http://code.google.com.vn/p/selenium/wiki/JsonWireProtocol
Giao thức chuyển hướng chrome cung cấp một phương thức để tối đa hóa cửa sổ:
/session/:sessionId/window/:windowHandle/maximize,
nhưng lệnh này không được sử dụng trong selenium-java. Điều này có nghĩa là bạn cũng gửi lệnh để chrome chính mình. Một khi tôi đã làm điều này nó hoạt động.
Đối với tôi, không có giải pháp nào ở trên hoạt động khi làm việc với Selenium Web Driver C # + Chrome:
--start-maximized
- nó bị bỏ quaTôi đã quản lý để làm cho nó hoạt động bằng InputSimulator :
var inputSim = new InputSimulator();
// WinKey + UP = Maximize focused window
inputSim.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.UP);
Bạn có thể thử với mã này để tối đa hóa cửa sổ chrome.
ChromeOptions options = new ChromeOptions();
options.addArguments("--window-size=1920,1080");
WebDriver driver = new ChromeDriver(options);