t.me/atinfo_chat Telegram группа по автоматизации тестирования

Не могу достучаться до определенных сайтов через selenide в докере

Теги: #<Tag:0x00007f748aa83558> #<Tag:0x00007f748aa83418> #<Tag:0x00007f748aa83238> #<Tag:0x00007f748aa830d0>

Проблема:
Не могу достучаться из контейнера селенида до linkedin.com, при этом на google.com/yandex.ru без проблем. Селенид решила попробовать, чтобы завернуть свой скрипт в докер и пускать по крону на линукс сервере (скрипт автоматически подает заявки на linkedin). То есть я пытаюсь решить проблему разворачивания скрипта на питоне в докере на удаленном сервере с headless браузером.

Локально на компьютере под впн открывается linkedin.com через selenium, но из под selenide ни в какую. Подозреваю нужно настроить прокси, но тут я застряла.

Код

from selenium import webdriver

capabilities = {
    "browserName": "chrome",
    "version": "83.0",
    "platform": "LINUX"
}

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

try:
    print('Session ID is:', driver.session_id)
    print('Opening the page...')
    driver.get('https://linkedin.com/')

    print('Taking screenshot...')
    driver.get_screenshot_as_file(driver.session_id + '.png')
finally:
    driver.quit()

Скриншот из теста:


Логи из контейнера селенида

2020/07/01 12:08:48 [-] [NEW_REQUEST] [unknown] [172.17.0.1]
2020/07/01 12:08:48 [-] [NEW_REQUEST_ACCEPTED] [unknown] [172.17.0.1]
2020/07/01 12:08:48 [29] [LOCATING_SERVICE] [chrome] [83.0]
2020/07/01 12:08:48 [29] [USING_DOCKER] [chrome] [83.0]
2020/07/01 12:08:48 [29] [CREATING_CONTAINER] [selenoid/vnc_chrome:83.0]
2020/07/01 12:08:48 [29] [STARTING_CONTAINER] [selenoid/vnc_chrome:83.0] [990aae07fea1ef6efc2d21d314dbb251fdbdc15157bece768f396bb921b774c0]
2020/07/01 12:08:49 [29] [CONTAINER_STARTED] [selenoid/vnc_chrome:83.0] [990aae07fea1ef6efc2d21d314dbb251fdbdc15157bece768f396bb921b774c0] [0.28s]
2020/07/01 12:08:49 [29] [SERVICE_STARTED] [selenoid/vnc_chrome:83.0] [990aae07fea1ef6efc2d21d314dbb251fdbdc15157bece768f396bb921b774c0] [0.46s]
2020/07/01 12:08:49 [29] [PROXY_TO] [990aae07fea1ef6efc2d21d314dbb251fdbdc15157bece768f396bb921b774c0] [http://172.17.0.3:4444/]
2020/07/01 12:08:49 [29] [SESSION_ATTEMPTED] [http://172.17.0.3:4444/] [1]
2020/07/01 12:08:50 [29] [SESSION_CREATED] [776d5fdfde6383f9806c43731bae1d62] [1] [1.26s]
2020/07/01 12:08:50 [32] [SESSION_DELETED] [776d5fdfde6383f9806c43731bae1d62]
2020/07/01 12:08:50 [29] [REMOVING_CONTAINER] [990aae07fea1ef6efc2d21d314dbb251fdbdc15157bece768f396bb921b774c0]
2020/07/01 12:08:50 [29] [CONTAINER_REMOVED] [990aae07fea1ef6efc2d21d314dbb251fdbdc15157bece768f396bb921b774c0]

а если попробовать url поменять на https://www.linkedin.com/ ?) с www

не помогло)
нашла решение, как настроить прокси для Remote здесь тык

from selenium import webdriver

desired_capabilities = {
    "browserName": "chrome",
    "version": "83.0",
    "platform": "LINUX"
}

PROXY = "52.191.103.11:3128"

desired_capabilities = webdriver.DesiredCapabilities.CHROME.copy()

desired_capabilities['proxy'] = {

    "httpProxy": PROXY,
    "ftpProxy": PROXY,
    "sslProxy": PROXY,
    "noProxy": None,
    "proxyType": "MANUAL",
    "class": "org.openqa.selenium.Proxy",
    "autodetect": False
}

driver = webdriver.Remote(
    command_executor='http://localhost:4444/wd/hub',
    desired_capabilities=desired_capabilities,
)

try:
    print('Session ID is:', driver.session_id)
    print('Opening the page...')
    driver.get('https://linkedin.com/')

    print('Taking screenshot...')
    driver.get_screenshot_as_file(driver.session_id + '.png')
finally:
    driver.quit()
1 Симпатия

зато появилась новая проблема, как пройти проверку безопасности)))

Я глубоко не вникал, но линкедин имеет апи для доступа, возможно нужно использовать другой подход:

Маленькая поправочка: речь идёт про Selenoid, а не Selenide. :slight_smile: