Поэтому я использую прокси-сервер browsermob для входа в тесты селена, чтобы пройти IAP для Google Cloud. Но это просто приводит пользователя на сайт, ему все равно нужно войти на сайт, используя некоторую форму входа в систему Firebase. В IAP я добавил заголовок авторизации через browsermob, чтобы вы могли попасть на сам сайт, но когда вы пытаетесь войти через форму firebase, вы получаете ошибку 401 message: "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential.
.
Я думал, что смогу обойти это, используя функцию белый список или черный список, чтобы просто не применять эти заголовки к URL-адресам, связанным с входом в firebase, но кажется, что белый список и черный список просто возвращают коды состояния и пустые ответы для вызовов, соответствующих регулярному выражению.
Есть ли способ просто выполнять определенные вызовы на основе хоста? Или на случай, если я сделаю что-то не так, дайте мне знать. Код ниже:
class ExampleTest(unittest.TestCase):
def setUp(self):
server = Server("env/bin/browsermob-proxy/bin/browsermob-proxy")
server.start()
proxy = server.create_proxy()
bearer_header = {}
bearer_header['Authorization'] = 'Bearer xxxxxxxxexamplexxxxxxxx'
proxy.headers({"Authorization": bearer_header["Authorization"]})
profile = webdriver.FirefoxProfile()
proxy_info = proxy.selenium_proxy()
profile.set_proxy(proxy_info)
proxy.whitelist('.*googleapis.*, .*google.com.*', 200) # This fakes 200 from urls on regex match
# proxy.blacklist('.*googleapis.*', 200) # This fakes 200 from urls if not regex match
self.driver = webdriver.Firefox(firefox_profile=profile)
proxy.new_har("file-example")
def test_wait(self):
self.driver.get("https://example.com/login/")
time.sleep(3)
def tearDown(self):
self.driver.close()