Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Obter HTTP Status Code com Selenium no Firefox

Professor, boa tarde!

Estou utilizando o Firefox como driver e quando tentamos acessar uma página sem estar logado o retorno é um http code 401 (cabeçalho), porém, diferentemente do Chrome, o elemento body da página vem vazio, sem informações. Desta forma, o teste não passa pois o assert verifica se contém o texto 401 na página.

Neste caso, o Selenium permite obter do header da resposta o http code para o teste?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Obrigado.

2 respostas
solução!

Olá João, tudo bem?

Entendo sua situação. O Selenium permite sim obter o HTTP Status Code da resposta, você pode utilizar o método getStatusCode() do objeto HttpResponse.

Segue um exemplo de como você pode implementar isso no seu código:

IWebElement element = driver.FindElement(By.XPath("//seu/xpath/aqui"));
element.Click();

HttpResponse response = ((OpenQA.Selenium.Firefox.FirefoxDriver)driver).Execute(DriverCommand.GetHttpResponse, new Dictionary<string, object> { ["sessionId"] = ((OpenQA.Selenium.Firefox.FirefoxDriver)driver).SessionId });

int statusCode = (int)response.StatusCode;

Dessa forma, você consegue obter o HTTP Status Code da resposta e utilizar no seu assert.

Espero ter ajudado e bons estudos!

Obrigado, professor!

Com certeza ajudou. Uma sugestão é que a aula nova aula seja adicionada no conteúdo do curso ou que seja regravada abordando essa situação pois é muito importante e pode ajudar outras pessoas.

Abraço.