Size: a a a

Aerokube Support

2021 January 14

A

Anton in Aerokube Support
кстаааати, у тебя там селеноид за ggr висит?
источник

A

Anton in Aerokube Support
хотя не, я путаю. За ggr я видео не скачиваю, а как раз указываю ссылку. И там видео не открывается, если сохранен неверный пароль от ggr
источник

I

ItsMe in Aerokube Support
ItsMe
Добрый день, гугл не дает скачать любую не последнюю версию хрома для билда образа. Есть у кого идеи как можно это сбилдить образ с нужной версией?

Команда ./images chrome -b 83.0.4103.61-1 -d 83.0.4103.39 -t selenoid/chrome:83.0-1 возвращает ошибку
Version '83.0.4103.61-1' for 'google-chrome-stable' was not found
Не получить ошибку можно только при билде командой:
./images chrome -b 87.0.4280.141-1 -d 87.0.4280.88 -t selenoid/chrome:87.0-1
Почекал группу на этот вопрос и все время игнорится подобный запрос на билд со старой версией хрома) Неужели это никому никогда не надо)
источник

SI

Stanislav Ivanov in Aerokube Support
Anton
а покажи свой скрин то с видосом, там элементы управления плеера то есть? Или это на каком то служебном компе?
контролы есть. Play/Pause, Full screen button works -> но во время воспроизведения - не могу прыгнуть на нужную мне секунду.
источник

A

Anton in Aerokube Support
Stanislav Ivanov
контролы есть. Play/Pause, Full screen button works -> но во время воспроизведения - не могу прыгнуть на нужную мне секунду.
вот теперь вижу что allure ee, что ж ты сразу не сказал. Раз свой сервак - могут быть проблемы с выдаваемым content-type. Попробуй по тем же allure-results построить локально отчет.
Ну и смотри логи браузера. Я кстати честно на allure ee пока такой подход, по скачиваю видео из селеноида не пробовал. У меня пока тупо ссылка на него указывается
источник

A

Anton in Aerokube Support
Stanislav Ivanov
контролы есть. Play/Pause, Full screen button works -> но во время воспроизведения - не могу прыгнуть на нужную мне секунду.
а еще попробуй развернуть блок с видео - кнопкой в правом верхнем углу =)
источник

SI

Stanislav Ivanov in Aerokube Support
Такое поведение не зависит от allure - версии либо продукта. Как в allure-framework так и в allure-ee -> одна и та же фигня :) Full screen button works good :)
источник

A

Anton in Aerokube Support
Stanislav Ivanov
Такое поведение не зависит от allure - версии либо продукта. Как в allure-framework так и в allure-ee -> одна и та же фигня :) Full screen button works good :)
баг подтверждаю, это уже на стороне allure ee явно. В allure-report у меня лично норм
источник

AH

Anatolii Hanziuk in Aerokube Support
Привет. Вопрос скорее не непосредственно по селеноиду, а по связке селеноида с селенидом, докером и прокси.
Тесты запускаются в докер контейнере на CI сервера, как часть пайплайна. Указан Configuration.remote = <address of GGR host>. Браузеры же запускаются в докер контейнерах на селеноид инстансах.
Сейчас лог запуска выглядит следующим образом:

c.myproject.config.SelenideConfigurator | Configuration.proxy=172.17.0.2
c.c.selenide.impl.WebDriverThreadLocalContainer | No webdriver is bound to current thread: 16 - let's create a new webdriver
org.littleshoot.proxy.impl.DefaultHttpProxyServer | Starting proxy at address: 0.0.0.0/0.0.0.0:0
org.littleshoot.proxy.impl.DefaultHttpProxyServer | Proxy listening with TCP transport
org.littleshoot.proxy.impl.DefaultHttpProxyServer | Proxy started at address: /0:0:0:0:0:0:0:0:54511
com.codeborne.selenide.webdriver.BrowserResizer | Set browser size to 1366x768
com.codeborne.selenide.webdriver.WebDriverFactory | BrowserName=chrome Version=85.0.4183.121 Platform=LINUX
com.codeborne.selenide.webdriver.WebDriverFactory | Selenide v. 5.15.0
c.c.selenide.drivercommands.CreateDriverCommand | Create webdriver in current thread 16: RemoteWebDriver -> RemoteWebDriver: chrome on LINUX (23d0e63f13cef88d3119471c5f5ff0d0fca5e56b36aa82d85166b2957f779a14)
com.myProject.pages.LoginPage | Open Home page
..... <some log here> .....
      Caused by:
       org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"button[type='submit']"}
         (Session info: headless chrome=85.0.4183.121)
       For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
       Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
       System info: host: '2123fd6bfe31', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.14.203-116.332.amzn1.x86_64', java.version: '11.0.9.1'
       Driver info: org.openqa.selenium.remote.RemoteWebDriver
       Capabilities {acceptInsecureCerts: true, browserName: chrome, browserVersion: 85.0.4183.121, chrome: {chromedriverVersion: 85.0.4183.87 (cd6713ebf92fa..., userDataDir: /tmp/.com.google.Chrome.UQW3Jf}, goog:chromeOptions: {debuggerAddress: localhost:33335}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: none, platform: LINUX, platformName: LINUX, proxy: Proxy(manual, http=172.17.0..., setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:virtualAuthenticators: true}

Если смотреть на выполнение теста, то браузер отображает "The site cannot be reached". ERR_TIMED_OUT. Судя по всему, браузер из селеноида не видит прокси.
Возможно, кто-то сталкивался с тем как правильно указывать Configuration.proxyHost в таком случае.
источник

T

T:ema in Aerokube Support
Anatolii Hanziuk
Привет. Вопрос скорее не непосредственно по селеноиду, а по связке селеноида с селенидом, докером и прокси.
Тесты запускаются в докер контейнере на CI сервера, как часть пайплайна. Указан Configuration.remote = <address of GGR host>. Браузеры же запускаются в докер контейнерах на селеноид инстансах.
Сейчас лог запуска выглядит следующим образом:

c.myproject.config.SelenideConfigurator | Configuration.proxy=172.17.0.2
c.c.selenide.impl.WebDriverThreadLocalContainer | No webdriver is bound to current thread: 16 - let's create a new webdriver
org.littleshoot.proxy.impl.DefaultHttpProxyServer | Starting proxy at address: 0.0.0.0/0.0.0.0:0
org.littleshoot.proxy.impl.DefaultHttpProxyServer | Proxy listening with TCP transport
org.littleshoot.proxy.impl.DefaultHttpProxyServer | Proxy started at address: /0:0:0:0:0:0:0:0:54511
com.codeborne.selenide.webdriver.BrowserResizer | Set browser size to 1366x768
com.codeborne.selenide.webdriver.WebDriverFactory | BrowserName=chrome Version=85.0.4183.121 Platform=LINUX
com.codeborne.selenide.webdriver.WebDriverFactory | Selenide v. 5.15.0
c.c.selenide.drivercommands.CreateDriverCommand | Create webdriver in current thread 16: RemoteWebDriver -> RemoteWebDriver: chrome on LINUX (23d0e63f13cef88d3119471c5f5ff0d0fca5e56b36aa82d85166b2957f779a14)
com.myProject.pages.LoginPage | Open Home page
..... <some log here> .....
      Caused by:
       org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"button[type='submit']"}
         (Session info: headless chrome=85.0.4183.121)
       For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
       Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
       System info: host: '2123fd6bfe31', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.14.203-116.332.amzn1.x86_64', java.version: '11.0.9.1'
       Driver info: org.openqa.selenium.remote.RemoteWebDriver
       Capabilities {acceptInsecureCerts: true, browserName: chrome, browserVersion: 85.0.4183.121, chrome: {chromedriverVersion: 85.0.4183.87 (cd6713ebf92fa..., userDataDir: /tmp/.com.google.Chrome.UQW3Jf}, goog:chromeOptions: {debuggerAddress: localhost:33335}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: none, platform: LINUX, platformName: LINUX, proxy: Proxy(manual, http=172.17.0..., setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:virtualAuthenticators: true}

Если смотреть на выполнение теста, то браузер отображает "The site cannot be reached". ERR_TIMED_OUT. Судя по всему, браузер из селеноида не видит прокси.
Возможно, кто-то сталкивался с тем как правильно указывать Configuration.proxyHost в таком случае.
через capability
источник

ГК

Гуд Константин... in Aerokube Support
Привет,

подскажите, почему может не поднимается сессия, если используется опция крома "--remote-debugging-port"?

       options = webdriver.ChromeOptions()
       options.add_argument("--remote-debugging-port=4444")
       capabilities = {
           "browserName": "chrome",
           "browserVersion": "87.0",
           "selenoid:options": {
               "enableVNC": True,
               "enableVideo": False
           }
       }
       driver = webdriver.Remote(
           command_executor="http://127.0.0.1:4444/wd/hub",
           desired_capabilities=capabilities, options=options)

WebDriverException: Message: New session attempts retry count exceeded
источник

АА

Александр Андряшин... in Aerokube Support
потому что в контейнере этот порт занят драйвером...
источник

T

T:ema in Aerokube Support
Гуд Константин
Привет,

подскажите, почему может не поднимается сессия, если используется опция крома "--remote-debugging-port"?

       options = webdriver.ChromeOptions()
       options.add_argument("--remote-debugging-port=4444")
       capabilities = {
           "browserName": "chrome",
           "browserVersion": "87.0",
           "selenoid:options": {
               "enableVNC": True,
               "enableVideo": False
           }
       }
       driver = webdriver.Remote(
           command_executor="http://127.0.0.1:4444/wd/hub",
           desired_capabilities=capabilities, options=options)

WebDriverException: Message: New session attempts retry count exceeded
--remote-debugging-port в докер-контейнере указывать не надо. а если без докера запускаете, то используйте --remote-debugging-port=9222
источник

ГК

Гуд Константин... in Aerokube Support
Александр Андряшин
потому что в контейнере этот порт занят драйвером...
ок, понятно
источник

ГК

Гуд Константин... in Aerokube Support
T:ema
--remote-debugging-port в докер-контейнере указывать не надо. а если без докера запускаете, то используйте --remote-debugging-port=9222
спасибо
источник

ГК

Гуд Константин... in Aerokube Support
Еще вопросик,

Почему так может быть, что когда я использую подключение к селеноиду, то browser.list_tab() ничего не возвращает, а без селеноида возвращает один таб, с которым и идет дальнейшая работа?
Создается впечатление, что создается соединение по http://127.0.0.1:4444/devtools/{driver.session_id}


import pychrome
from selenium import webdriver

capabilities = {
   "browserName": "chrome",
   "browserVersion": "87.0",
   "selenoid:options": {
       "enableVNC": True,
       "enableVideo": False
   }
}

driver = webdriver.Remote(
command_executor="http://127.0.0.1:4444/wd/hub",
desired_capabilities=capabilities)

browser = pychrome.Browser(url=f"http://127.0.0.1:4444/devtools/{driver.session_id}")
tab = browser.list_tab()[0]  #  <<--------------
tab.start()
driver.get(context.stage_url)

# add Authorization header for basic authentication
tab.call_method("Network.setExtraHTTPHeaders", headers={"Authorization": "Basic " + context.base64_message})
tab.call_method("Network.enable", _timeout=20)
источник

T

T:ema in Aerokube Support
в документации селеноида сказано, что он умеет проксировать запросы к удалённым нодам. и адрес именно такой - selenoid-host:4444/devtools/session_id
а когда вы работаете локально с браузером, то это уже забота фреймворка, там и адрес обычно localhost:9222/devtools/something_else
где "something else" - не ваша сессия, а внутренний идентификатор каждого процесса внутри браузера. туда и табы, и экстеншены и т.п. попадает.
источник

T

T:ema in Aerokube Support
проблема-то в чём?
источник

ГК

Гуд Константин... in Aerokube Support
Проблема в том, что браузер не возвращает список табов из-за чего я не могу с ним взаимодействовать по сдп
источник

AH

Anatolii Hanziuk in Aerokube Support
T:ema
через capability
Это очевидно. Вопрос в том что там нужно указать при таком сетапе и нужно ли как-то дополнительно сверлить тоннели из докер контейнера с тестами и к докер контейнеру с селеноидом
источник