क्या वेब विंडो (सेलेनियम 2) का उपयोग करके सी # के साथ ब्राउज़र विंडो को अधिकतम करने का कोई तरीका है?
क्या वेब विंडो (सेलेनियम 2) का उपयोग करके सी # के साथ ब्राउज़र विंडो को अधिकतम करने का कोई तरीका है?
जवाबों:
इस कार्यक्षमता को वेबड्राइवर में जोड़ने के लिए एक उत्कृष्ट समस्या है, जिसे यहाँ ट्रैक किया जा सकता है: 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 और फ़ायरफ़ॉक्स के लिए काम करता है। क्रोम काम नहीं करता है। ChromeDriver प्रोजेक्ट पर इसके लिए एक बग सबमिट किया गया है।
इस बीच, क्रोम के लिए चारों ओर पाने के लिए जोय वी और कोडर 323 का सुझाव दिया गया है।
ChromeOptions options = new ChromeOptions();
options.addArgument("--start-maximized");
driver = new ChromeDriver(options);
AttributeError: 'WebDriver' object has no attribute 'Manage'
IE और फ़ायरफ़ॉक्स के लिए:
driver.manage().window().maximize();
क्रोम के लिए:
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();
जावा के साथ ब्राउज़र को अधिकतम करें:
driver.manage().window().maximize();
जावा के साथ करने का दूसरा तरीका:
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();
निम्नलिखित सेलेनियम जावा कोड स्निपेट ने मेरे लिए काम किया:
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);
जावा के लिए:
driver.manage().window().maximize();
यह IE, मोज़िला, क्रोम में काम करेगा
C # के लिए:
driver.Manage().Window.Maximize();
जावा के लिए:
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);
}
मैंने जिम के कोड का उपयोग किया, लेकिन ब्राउज़र को अधिकतम करने के लिए WatiN और C # के साथ उपयोग के लिए थोड़ा संशोधित किया गया।
आप WebDriver में सेलेनियम एमुलेशन का उपयोग कर सकते हैं :
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 # में मेरे लिए क्या काम किया गया है, फ़ायरफ़ॉक्सड्राइवर वर्ग के लिए वैश्विक है:
usings में:
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 (नोड.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');
कोड की निचली रेखा 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,
लेकिन इस आदेश का उपयोग सेलेनियम-जावा में नहीं किया जाता है। इसका मतलब है कि आप अपने आप को क्रोम को कमांड भेज सकते हैं। एक बार जब मैंने ऐसा किया तो यह काम करता है।
Chrome ड्राइवर पहले से ही समर्थन करता है:
जावा:
webDriver = new ChromeDriver();
webDriver.manage().window().maximize();
मेरे लिए, ऊपर दिए गए किसी भी समाधान ने सेलेनियम वेब ड्राइवर C # + Chrome के साथ काम करते समय काम नहीं किया:
--start-maximized
- इसे नजरअंदाज किया जाता हैमैंने इनपुटसिमुलेटर का उपयोग करके इसे प्राप्त करने में कामयाबी हासिल की :
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);