Рейтинг  

Яндекс.Метрика
Яндекс цитирования
 

   

Статистика  

Пользователи
7
Материалы
578
Кол-во просмотров материалов
2743127
   

Selenium 2023:

Помощь по node:

java -jar selenium-server-4.11.0.jar node --help
java -jar selenium-server-4.11.0.jar node --config-help
java -jar selenium-server-4.11.0.jar node --config-help > example.toml


  • Запуск Selenium HUB:
    java -jar selenium-server-4.10.0.jar hub
    
    
  • Selenium HUB - http://localhost:4444 - Web-интерфейс Хаба


  • Запуск первого узла (node) на порту по умолчанию - 5555
    java -jar selenium-server-4.10.0.jar node --hub http://localhost:4444
    
    
  • Запуск следующего узла (node)
    java -jar selenium-server-4.10.0.jar node --hub http://localhost:4444 --port 5556
    
    

Об этом нигде чётко не пишут, подразумевая, вероятно, что это само собой разумеющееся, но вот
что нужно, для запуска тестов на Selenium Grid (через pytest):

  1. для параллельного запуска на Grid-е нужно установить пакет pytest-xdist (При запуске pytest нужно указать ключ -n и через пробел количество параллельных процессов, например: pytest -n 5)
  2. используемый браузер должен запускаться без окна, т.е. с параметром -headless (в Selenium 4 нужно использовать команду options.add_argument('-headless'), команда options.headless = True - устарела)
  3. параллельно через selenium hub можно запустить тесты только на одном виде браузера, т.к. в webdriver.Remote() пропипсывается окружение только для одного браузера/системы

Для установления дополнительных параметров браузеров используется команда:
options.set_capability("platformName", "Windows 7")



import pytest
from selenium import webdriver
from selenium.webdriver.chrome.options import Options as Options_Chrome
from selenium.webdriver.firefox.options import Options as Options_Firefox
from selenium.webdriver.edge.options import Options as Options_Edge

.....

    # Selenium Hub

    browser = None
    match browser_name:
        case "chrome" | "firefox" | "edge":
            match browser_name:
                case "chrome":
                    hub_options = Options_Chrome()
                case "firefox":
                    hub_options = Options_Firefox()
                case "edge":
                    hub_options = Options_Edge()
                case _:
                    hub_options = Options_Chrome()
            hub_options.add_argument('-headless')

            browser = webdriver.Remote(command_executor=LinkData.SELENIUM,
                                       options=hub_options)

.....

    # SELENOID

            chrome_options = webdriver.ChromeOptions()
            chrome_options.set_capability("browserName", "chrome")
            chrome_options.set_capability("browserVersion", "114")
            chrome_options.set_capability("selenoid:options",
                                          {"browserName": "chrome",
                                           "browserVersion": "114",
                                           "enableVNC": True, "enableLog": True,
                                           "enableVideo": False,
                                           "maxInstances": 4, "maxSession": 4})
            browser = webdriver.Remote(command_executor=LinkData.SELENIUM,
                                       options=chrome_options)



   
   

Login Form