Я хотел бы заранее поблагодарить вас за терпение, оказанное мне, и я прошу прощения за то, что вы новичок. Если я что-то опубликовал неправильно или в этой статье отсутствует какой-либо способ, пожалуйста, дайте мне знать, чтобы я мог добавить его вместо голосования.
Я начну с описания инфраструктуры, в которой я работаю. Он содержит несколько прокси-серверов, которые используют балансировщик нагрузки для пересылки аутентификаций пользователей на соответствующий прокси-сервер, которые напрямую связаны с активным каталогом. При аутентификации используются учетные данные и исходный IP-адрес, который использовался для входа в компьютер, с которого поступает запрос. Сервер кэширует IP-адрес и учетные данные в течение 60 минут. Я использую тестовую учетную запись специально для этого процесса и используется только на сервере модульного тестирования.
Я работаю над некоторой автоматизацией с помощью selenium webdriver на удаленном сервере, используя Docker-контейнер. Я использую Python в качестве языка сценариев. Я пытаюсь запустить тесты на внутренних и внешних веб-страницах / приложениях. Мне удалось пройти базовый тест на внутреннем веб-сайте с помощью следующего сценария:
Примечание: 10.1.54.118 - сервер, на котором размещается док-контейнер с веб-драйвером selenium
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
browser = webdriver.Remote(command_executor='http://10.1.54.118:4444/wd/hub', desired_capabilities=DesiredCapabilities.CHROME)
browser.get("http://10.0.0.2")
print (browser.find_element_by_tag_name('body').text)
bodyText = browser.find_element_by_tag_name('body').text
print (bodyText)
if 'Hello' in bodyText:
print ('Found hello in body')
else:
print ('Hello not found in body')
browser.quit()
Сценарий может получить доступ к внутренней веб-странице и распечатать весь текст на ней.
Однако у меня возникают проблемы при попытке запустить тестовые сценарии для внешних веб-сайтов.
Я пробовал следующие статьи и учебные пособия, но мне это не помогло.
Статьи и учебники, которые я пробовал:
Я попытался создать 4 версии скрипта для доступа к внешнему сайту, например google.com, и просто распечатать его текст. Каждый скрипт возвращает ошибку тайм-аута. Я извиняюсь за публикацию большого количества кода, но, возможно, сообщество сможет увидеть, где я ошибаюсь с аспектом кодирования.
Код 1:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
PROXY = "10.32.51.169:3128" # IP:PORT or HOST:PORT
desired_capabilities = webdriver.DesiredCapabilities.CHROME.copy()
desired_capabilities['proxy'] = {
"httpProxy":PROXY,
"ftpProxy":PROXY,
"sslProxy":PROXY,
"socksUsername":"myusername",
"socksPassword":"mypassword",
"noProxy":None,
"proxyType":"MANUAL",
"class":"org.openqa.selenium.Proxy",
"autodetect":False
}
browser = webdriver.Remote('http://10.1.54.118:4444/wd/hub', desired_capabilities)
browser.get("https://www.google.com/")
print (browser.find_element_by_tag_name('body').text)
bodyText = browser.find_element_by_tag_name('body').text
print (bodyText)
if 'Hello' in bodyText:
print ('Found hello in body')
else:
print ('Hello not found in body')
browser.quit()
Мой код неверен? Могу ли я передать параметры конфигурации в докер chrome selenium webdriver или мне нужно собрать докер контейнер с предварительно настроенными параметрами прокси-сервера перед его сборкой? Я с нетерпением жду ваших ответов и любой помощи, которая может указать мне правильное направление.
С уважением,
смиренно преданный ученик