使用Options设置窗口大小和使用set_window_size方法设置窗口大小有什么区别



我想在selenium中设置窗口大小。我找到了这个解决方案如何在Selenium Chrome Python 中设置窗口大小

rom selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("--headless")
options.add_argument("window-size=1400,600")
driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:UtilityBrowserDriverschromedriver.exe', service_args=["--log-path=./Logs/DubiousDan.log"])
driver.get("http://google.com/")
print ("Headless Chrome Initialized")
print(driver.get_window_size())
driver.set_window_size(1920, 1080)
size = driver.get_window_size()
print("Window size: width = {}px, height = {}px".format(size["width"], size["height"]))
driver.quit()

做有什么不同吗

options.add_argument("window-size=1400,600")

或进行

driver.set_window_size(1920, 1080)

我在windows机器中注释掉了无头选项,并检查了代码。使用driver.set_window_size(1920, 1080),我可以在浏览器上看到窗口大小的变化。但有了options.add_argument("window-size=1920, 1080"),我看不出有什么变化options.add_argument("window-size=1920, 1080")是否仅用于无头模式?

使用
driver.set_window_size(1920, 1080)
设置驱动程序窗口大小和使用Options
options.add_argument("window-size=1920,1080")
似乎是一样的
这类似于
driver.get(url)

driver.navigate().to(url)
WebDriver方法,它们做着完全相同的事情,实际上是同义词
我能注意到的通过
driver.set_window_size(1920, 1080)options.add_argument("window-size=1920,1080")
设置驱动程序窗口大小之间的唯一区别是,通过
driver.set_window_size(1920, 1080)
可以在代码中的任何位置执行驱动程序窗口尺寸的设置/更改,甚至可以执行多次,而通过
2options.add_argument("window-size=1920,1080")
仅可以执行一次,然后再通过
1driver = webdriver.Chrome(chrome_options=options, executable_path=the_path(创建驱动程序实例

如果您查看源代码:

  1. set_window_size

代码:

def set_window_size(self, width, height, windowHandle='current'):
"""
Sets the width and height of the current window. (window.resizeTo)
:Args:
- width: the width in pixels to set the window to
- height: the height in pixels to set the window to
:Usage:
driver.set_window_size(800,600)
"""
if self.w3c:
if windowHandle != 'current':
warnings.warn("Only 'current' window is supported for W3C compatibile browsers.")
self.set_window_rect(width=int(width), height=int(height))
else:
self.execute(Command.SET_WINDOW_SIZE, {
'width': int(width),
'height': int(height),
'windowHandle': windowHandle})

明确提到设置

当前窗口的宽度和高度

使用两个参数:

- width: the width in pixels to set the window to
- height: the height in pixels to set the window to
  1. add_argument

代码:

def add_argument(self, argument):
"""
Adds an argument to the list
:Args:
- Sets the arguments
"""
if argument:
self._arguments.append(argument)
else:
raise ValueError("argument can not be null")

现在来谈谈你的问题:

我在windows机器中注释掉了无头选项,并检查了代码。使用driver.set_window_size(19201080(,我可以看到窗口大小浏览器上的更改。但是对于options.add_argument("窗口大小=1920,1080〃(,我看不出有什么变化options.add_argument("窗口大小=19201080"(仅用于无头模式?

使用driver.set_window_size(1920, 1080),我可以看到窗口大小浏览器上的更改-这是意料之中的事。

options.add_argument("window-size=1920, 1080"),我没有看到任何变化options.add_argument("window-size=1920, 1080")仅适用于无头模式?-不,理想情况下,它应该在1920年和1080像素推出。add_argument只需将一个arg添加到列表中。进行CCD_ 21是可选的。

最新更新