В чем разница между настройкой размера окна с помощью параметров и настройкой размера окна с помощью метода set_window_size

Я ищу настройку размера окна в селене. Я нашел это решение Как установить размер окна в 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:\Utility\BrowserDrivers\chromedriver.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") только для безголового режима?

Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
0
0
34
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Настройка размера окна драйвера с помощью
driver.set_window_size(1920, 1080)
и делать это с использованием Options
options.add_argument("window-size=1920,1080")
Вроде то же самое.
Это как
driver.get(url)
И
driver.navigate().to(url)
Методы Вебдрайвер, которые выполняют точно то же самое и на самом деле являются синонимами.
Единственная разница, которую я могу заметить, между настройкой размера окна драйвера с помощью
driver.set_window_size(1920, 1080) против options.add_argument("window-size=1920,1080")
Это настройка/изменение размера окна драйвера на
driver.set_window_size(1920, 1080)
может выполняться в любом месте вашего кода, даже несколько раз, при установке размера окна драйвера с помощью
options.add_argument("window-size=1920,1080")
Можно выполнить только один раз перед созданием экземпляра драйвера с помощью
driver = 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 and height of the current window

принимает два аргумента:

- 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")

Теперь перейдем к вашему вопросу:

I commented out the headless option in my windows machine and checked the code. With driver.set_window_size(1920, 1080), I see windows size changes on browser. But with options.add_argument("window-size=1920, 1080"), I don't see any change Is options.add_argument("window-size=1920, 1080") only for headless mode?

С 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 к список. делать options.add_argument("--headless") необязательно.

ладно, тогда дело не в безголовом режиме.

richa verma 16.03.2022 13:19

верный! это необязательно.

cruisepandey 16.03.2022 13:20

options.add_argument("window-size=1920, 1080") зависит ли этот браузер?

richa verma 16.03.2022 13:23

что вы подразумеваете под зависимостью от браузера?

cruisepandey 16.03.2022 13:28

Другие вопросы по теме