Selenium 如何控制Chromedriver打开窗口的大小?
我使用Selenium WebDriver实现自动化,我使用的是Chromedriver 我注意到,当我的驱动程序运行并打开chrome浏览器时,它会以奇怪的大小打开浏览器。 我试图把它修好,但徒劳Selenium 如何控制Chromedriver打开窗口的大小?,selenium,selenium-chromedriver,Selenium,Selenium Chromedriver,我使用Selenium WebDriver实现自动化,我使用的是Chromedriver 我注意到,当我的驱动程序运行并打开chrome浏览器时,它会以奇怪的大小打开浏览器。 我试图把它修好,但徒劳 有人知道如何更改它吗?尝试使用driver.manage.window.maximize()以最大化窗口。尝试此操作 using System.Drawing; driver.Manage().Window.Size = new Size(width, height); 将此选项用于您的自定义尺寸
有人知道如何更改它吗?尝试使用
driver.manage.window.maximize()编码>以最大化窗口。尝试此操作
using System.Drawing;
driver.Manage().Window.Size = new Size(width, height);
将此选项用于您的自定义尺寸:
driver.manage().window().setSize(new Dimension(1024,768));
您可以根据自己的要求更改维度。如果您使用的是用于php的Facebook语言绑定,请尝试以下操作:
$driver->manage()->window()->setSize(new WebDriverDimension(1024,768));
在java/groovy中,请尝试:
import java.awt.Toolkit;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.Point;
...
java.awt.Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension maximizedScreenSize = new Dimension((int) screenSize.getWidth(), (int) screenSize.getHeight());
driver.manage().window().setPosition(new Point(0, 0));
driver.manage().window().setSize(maximizedScreenSize);
如果您使用Clojure,这将全屏打开浏览器,您可以使用此代码段调整浏览器大小
(require '[clj-webdriver.taxi :as taxi])
; Open browser
(taxi/set-driver! {:browser :chrome} "about:blank")
; Resize browser
(-> taxi/*driver* (.webdriver) (.manage) (.window)
(.setSize (org.openqa.selenium.Dimension. 0 0)))
使用维度类
控制窗口大小
Dimension d = new Dimension(1200,800); //(x,y coordinators in pixels)
driver.manage().window().setSize(d);
python
司机
代码:
Ruby版本:
caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args"=> ["--window-size=1280,960"]})
url = "http://localhost:9515" # if you are using local chrome or url = Browserstack/ saucelabs hub url if you are using cloud service providers.
Selenium::WebDriver.for(:remote, :url => url, :desired_capabilities => caps)
调整chrome的大小在最新的ChromeDriver中有缺陷,它会间歇性地失败,并显示此失败消息
unknown error: cannot get automation extension
from timeout: cannot determine loading status
from timeout: Timed out receiving message from renderer: -65.294
(Session info: chrome=56.0.2924.76)
(Driver info: chromedriver=2.28.455517 (2c6d2707d8ea850c862f04ac066724273981e88f)
通过SeleniumWebDriver启动的chrome也不支持通过javascript重新调整大小。最后一个选项是使用命令行开关。C#版本的@yonatan kiron的答案,以及Selenium的使用示例代码中的语句
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddArgument("--window-size=1300,1000");
using (IWebDriver driver = new ChromeDriver(chromeOptions))
{
...
}
以下chrome选项适用于无头chrome:
在JAVA中:
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--window-size=1920,1080");
chromeOptions.setHeadless(true);
driver = new ChromeDriver(chromeOptions);
driver.get("your-site");
driver.manage().window().maximize();
selenium java:3.8.1
色度驱动器:2.43
铬:v69-71红宝石
方法#1
options = {
'chromeOptions' => {
'args' => ['start-fullscreen']
}
}
caps = Selenium::WebDriver::Remote::Capabilities.chrome(options)
@driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
方法#2
options = {
'chromeOptions' => {
'args' => ['window-size=640,480']
}
}
caps = Selenium::WebDriver::Remote::Capabilities.chrome(options)
@driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
方法#3
max_width, max_height = @driver.execute_script("return [window.screen.availWidth, window.screen.availHeight];")
@driver.manage.window.resize_to(max_width, max_height)
方法#4
@driver.manage.window.maximize
方法#5
target_size = Selenium::WebDriver::Dimension.new(1600, 1268)
@driver.manage.window.size = target_size
方法#6
@driver.manage.window.resize_to(640, 480)
方法#7
@driver.execute_script("window.resizeTo(640, 480);")
谢谢,但我不想要全屏,而是想用我自己的尺寸来调整窗口的大小。Chromedriver出于某种原因在打开浏览器时修复窗口大小。您使用的是什么语言绑定?API提供了设置windows大小的方法,无论您使用的是哪种驱动程序(除非您对ChromeDriver有特殊问题,否则请提供更多信息)。这是一篇你可能想看的文章。这是指向webdriver chrome的链接,这一个对我有用。驱动程序版本81.0.4044.138是的,chromedriver中最新的窗口大小调整有问题,他们说它在2.28版本中得到了修复,但我在该版本中也遇到了错误。最后我还使用命令行开关并将窗口大小作为参数传递。谢谢!使用ChromeDriver 2.32,这是适用于无头变体的唯一选项。窗户。driver.Manage().Window.Size不起作用。我注意到它似乎有一个最大大小,如果您查看它,它会自动恢复到该大小。(我的机器,1940像素高,但似乎有所不同。)更新:我的评论适用于Chrome,但不适用于Firefox。此符号也适用于Chrome\u选项。添加参数('--window size=768x1024')
似乎不适用于无头Chrome(版本60)。然而,@Yonatan Kiron的回答确实如此works@MiguelD“Alessio很高兴它有帮助:)木偶师解决方案:请参阅在Chrome Devtools协议(CDP)会话中使用session.send('Browser.setWindowBounds',{windowId,bounds:{width:width,height:height}})
来完成此任务。除此之外的所有其他答案都是非默认窗口大小,这意味着它仍将推出丑陋+1。
target_size = Selenium::WebDriver::Dimension.new(1600, 1268)
@driver.manage.window.size = target_size
@driver.manage.window.resize_to(640, 480)
@driver.execute_script("window.resizeTo(640, 480);")