มีวิธีใดในการขยายหน้าต่างเบราว์เซอร์โดยใช้ WebDriver (Selenium 2) ด้วย C # หรือไม่?
มีวิธีใดในการขยายหน้าต่างเบราว์เซอร์โดยใช้ WebDriver (Selenium 2) ด้วย C # หรือไม่?
คำตอบ:
มีปัญหาที่โดดเด่นในการเพิ่มฟังก์ชันนี้ใน 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);");
}
screen
วัตถุจาวาสคริปต์ การพิจารณาประเด็นเหล่านี้จาวาสคริปต์ควรจะเป็น:window.moveTo(0,0); window.resizeTo(screen.width, screen.height);
driver.Manage().Window.Maximize();
ใช้ได้กับ IE และ Firefox Chrome ไม่ทำงาน มีการส่งข้อบกพร่องสำหรับสิ่งนี้ในโครงการ ChromeDriver
ในขณะเดียวกันการหลีกเลี่ยง Chrome คือการใช้สิ่งที่ 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));
ก่อนบรรทัดสุดท้ายมิฉะนั้นหน้าต่างจะไม่อยู่ในตำแหน่งที่ถูกต้อง
หากคุณใช้ไดรเวอร์ Chrome คุณสามารถตั้งค่าความสามารถ
var capabilities = new DesiredCapabilities();
var switches = new List<string>
{
"--start-maximized"
};
capabilities.SetCapability("chrome.switches", switches);
new ChromeDriver(chromedriver_path, capabilities);
เพียงใช้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);
สำหรับ Java:
driver.manage().window().maximize();
มันจะทำงานใน IE, Mozilla, Chrome
ฉันมีปัญหาเดียวกัน แต่ปัญหาสามารถแก้ไขได้โดยใช้รหัสต่อไปนี้
driver.manage().window().fullscreen();
สำหรับ 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);
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 # เพื่อขยายเบราว์เซอร์ให้ใหญ่ที่สุด
คุณสามารถใช้Selenium Emulationใน WebDriver:
selenium = new WebDriverBackedSelenium(driver,url);
selenium.windowMaximize();
ฉันใช้วิธีนี้
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);
มีฟังก์ชันที่คุณสามารถใช้เพื่อขยายหน้าต่างใน 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()
ไดรเวอร์ไคลเอ็นต์ 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);
สำหรับ 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');
ตัวเลือกนี้ใช้ได้สำหรับฉัน:
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" เพื่อเปิดเมนูการทำงานของเบราว์เซอร์ขึ้นมาเพื่อเลือก "MAXIMIZE" จากตัวเลือกและกด "ENTER"
ด้วยรหัสด้านล่างฉันสามารถขยายหน้าต่างให้ใหญ่ที่สุด
((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 และ Iam ที่ใช้ 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 JsonWireProtocol
:
http://code.google.com/p/selenium/wiki/JsonWireProtocol
โปรโตคอล chrome diver มีวิธีการขยายหน้าต่าง:
/session/:sessionId/window/:windowHandle/maximize,
แต่คำสั่งนี้ไม่ได้ใช้ในซีลีเนียม - จาวา ซึ่งหมายความว่าคุณส่งคำสั่งไปยัง chrome ด้วยตัวเอง เมื่อฉันทำมันได้ผล
ไดรเวอร์ Chrome รองรับอยู่แล้ว:
Java:
webDriver = new ChromeDriver();
webDriver.manage().window().maximize();
สำหรับฉันวิธีแก้ปัญหาข้างต้นไม่ได้ผลเมื่อทำงานกับ Selenium Web Driver C # + Chrome:
--start-maximized
- ไม่สนใจฉันจัดการเพื่อให้มันทำงานโดยใช้InputSimulator :
var inputSim = new InputSimulator();
// WinKey + UP = Maximize focused window
inputSim.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.UP);
คุณสามารถลองใช้รหัสนี้เพื่อขยายหน้าต่าง Chrome ให้ใหญ่ที่สุด
ChromeOptions options = new ChromeOptions();
options.addArguments("--window-size=1920,1080");
WebDriver driver = new ChromeDriver(options);