mst*_*nge 12
使用Selenium Driver的窗口定位命令:
var monitor = Screen.FromPoint(new Point(Screen.PrimaryScreen.Bounds.Right + 1, Screen.PrimaryScreen.Bounds.Top));
var seleniumDriver = new ChromeDriver(options);
seleniumDriver.Manage().Window.Position = new Point(monitor.Bounds.X, monitor.Bounds.Y);
var coypuDriver = new MultimonWebDriver(seleniumDriver, Browser.Chrome);
var rv = new BrowserSession(sessionConfiguration, coypuDriver);
Run Code Online (Sandbox Code Playgroud)使用命令行参数配置驱动程序.我更喜欢这个,因为在处理移动命令之前,解决方案#1会导致显示窗口的驱动程序服务器闪烁:
var monitor = Screen.FromPoint(new Point(Screen.PrimaryScreen.Bounds.Right + 1, Screen.PrimaryScreen.Bounds.Top));
var options = new ChromeOptions();
options.AddArgument(String.Format("--window-position={0},{1}", monitor.Bounds.X, monitor.Bounds.Y));
var seleniumDriver = new ChromeDriver(options);
var coypuDriver = new MultimonWebDriver(seleniumDriver, Browser.Chrome);
var rv = new BrowserSession(sessionConfiguration, coypuDriver);
Run Code Online (Sandbox Code Playgroud)其中MultimonWebDriver只是公开对受保护构造函数的访问:
public class MultimonWebDriver : SeleniumWebDriver
{
public MultimonWebDriver(IWebDriver webDriver, Browser browser) : base(webDriver, browser)
{
}
}
Run Code Online (Sandbox Code Playgroud)
小智 9
在python中:
browser = webdriver.Chrome()
browser.set_window_position(2000, 0)
Run Code Online (Sandbox Code Playgroud)
小智 6
实际上,有一个相当简单的方法可以做到这一点。有一个名为“ set_window_position”的方法可以接受负值。因此,我希望浏览器在我的左屏幕上打开,因此将一个简单的负1000px像素拖动到足够的位置,以使maximum_window可以选择左屏幕。
driver.set_window_position(-1000, 0)
driver.maximize_window()
Run Code Online (Sandbox Code Playgroud)
因此,根据屏幕尺寸和您要去的地方,进行一些计算并将其拖到那里!
来源:http : //selenium-python.readthedocs.io/api.html#module-selenium.webdriver.firefox.webdriver(此示例中为Firefox)
小智 6
Wailord的答案对我有用,但它总是打开窗户然后移动它。所以有一个短暂的时刻它阻止了我的编辑。
Chrome 有一个用于窗口位置的命令行开关
--window-position=x,y
https://peter.sh/experiments/chromium-command-line-switches/#window-position
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('window-position=2000,0') # opens at x=2000,y=0 from the start
driver = webdriver.Chrome(options=options)
Run Code Online (Sandbox Code Playgroud)
我使用这个不是很花哨但快速的方法来实现这一点。因为我不仅希望它出现在我的第二个屏幕上,而且还希望它最大化,所以我不必在坐标上太精确。任何高于 2000 的 X 坐标通常都在我所有开发机器的第二个屏幕上:(本示例使用 chromedriver 但适用于任何 IWebDriver)
chrome = new ChromeDriver();
chrome.Manage().Window.Position = new System.Drawing.Point(2000, 1); // To 2nd monitor.
chrome.Manage().Window.Maximize();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15800 次 |
| 最近记录: |