Demanda
Como o pedido de simulação para login é muito complicado, queremos usar o Selenium para abrir o Google Chrome e obter o valor do cookie após o login, e então carregar o conteúdo do cookie para solicitar a interface relevante do site para automatizar o teste.
Selênio
Selenium é uma ferramenta para testes de aplicações web. Testes de Selenium rodam diretamente no navegador, como se um usuário real estivesse fazendo. Navegadores suportados incluem IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera, etc. Os principais recursos desta ferramenta incluem: Teste de compatibilidade de navegadores - teste seu aplicativo para ver se ele funciona bem em diferentes navegadores e sistemas operacionais. Funcionalidade do sistema de teste – Crie testes de regressão para verificar a funcionalidade do software e os requisitos do usuário. Ele suporta registro automático de ações e geração automática de scripts de teste em diferentes linguagens como .Net, Java, Perl, etc.
Primeiro, vamos criar um novo projeto de console C# com o nome "chrome-cookie-demo" e a versão do .NET framework é a 4.7.2.
O comando nuget é o seguinte:
Após a instalação do Selenium.WebDriver.ChromeDriver, um arquivo chromedriver.exe será gerado no diretório de depuração do projeto. O Selenium.WebDriver é entendido como uma interface abstrata, e então cada navegador implementa essa interface por conta própria, o Selenium.WebDriver chamará o Selenium.WebDriver.ChromeDriver(chromedriver.exe), chromedriver.exe iniciará o Google Chrome instalado nativamente de acordo com os parâmetros obtidos e então executará a operação correspondente.
Claro, há um pré-requisito,O computador deve ter o Google Chrome instalado。
O código é o seguinte:
O erro é o seguinte:
System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83
Isso significa que o driver atual não suporta a versão 83 do Google Chrome, verifique a versão instalada na máquina da seguinte forma:
(Versão 71.0.3578.98)
Atualizar seu Google Chrome nativo e reiniciá-lo vai resolver (ou instalar a versão do navegador que atende aos requisitos).
Tentamos reiniciar o projeto chrome-cookie-demo e descobrimos que o site pode ser aberto normalmente, mas,A página da web não está logada。 Quando você clica no navegador para abrir este site, o status está logado.
A solução é definir o parâmetro user-data-dir com o seguinte código:
Reiniciamos o programa e recebemos o seguinte erro:
Exceção não tratada: OpenQA.Selenium.WebDriverException: argumento inválido: o diretório de dados do usuário já está em uso, por favor especifique um valor único para o argumento --user-data-dir, ou não use -- user-data-dir em OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Resposta erroResposta) em OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, parâmetros do Dicionário'2) In OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities) Em OpenQA.Selenium.Remote.RemoteWebDriver: ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities) No OpenQA.Selenium.Chrome.ChromeDriver: ctor(serviço ChromeDriverService, opções ChromeOptions, comando TimeSpan Timeout) No OpenQA.Selenium.Chrome.ChromeDriver: ctor (serviço ChromeDriverService, opções ChromeOptions) Em chrome_cookie_demo. Program.Main(String[] args) Localização C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: linha número 36 De forma geral, a pasta já foi ocupada, por favor reponha-a, a solução:Feche o Google Chrome aberto e use a pasta de dados do usuário para o programa "chrome-cookie-demo" que criamos。
Obtenha cookies web
driver.manage().getCookies(); Devolver a lista de todos os cookies driver.manage().getCookieNamed(arg0); Devolver cookie específico de acordo com o nome driver.manage().addCookie(arg0); Crie e adicione o cookie driver.manage().deleteCookie(arg0); Exclua cookie específico driver.manage().deleteCookieNamed(arg0); Exclua cookie específico de acordo com o Nome driver.manage().deleteAllCookies(); Exclua todos os cookies Documentação:O login do hiperlink está visível.
Testamos para obter todos os cookies da web
Descoberta,Você pode ler as informações sobre cookies do "HttpOnly", como mostrado na figura abaixo:
Claro, precisamos converter as informações do cookie em uma string, simular a interface de envio de requisições e anexar o método de convertê-la em string no código-fonte.
Código fonte para download:
O login do hiperlink está visível.
(Fim)
|