Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 181846|Resposta: 27

[Fonte] Testes automatizados do selenium .Net/C# recebem valores de cookies

[Copiar link]
Publicado em 05/07/2020 11:44:34 | | | |
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)

Pontuação

Número de participantes1MB+1 contribuir+1 Colapso razão
JGSKINGSTONE + 1 + 1 Muito poderoso!

Veja todas as classificações





Anterior:EF(CodeFirst) + MySQL
Próximo:Consulta condicional MSSQL WHERE ignora a condição
Publicado em 14/05/2022 10:22:54 |
Rápido:Autores são banidos ou o conteúdo removido é automaticamente bloqueado
Publicado em 14/05/2022 10:21:26 |
Rápido:Autores são banidos ou o conteúdo removido é automaticamente bloqueado
Publicado em 27/11/2021 17:31:04 |

A simulação do .NET Selenium ainda é incrível, obrigado.
Publicado em 05/07/2020 12:46:59 |
Parece bom
Publicado em 18/08/2020 10:45:14 |
Aprendendo. Estudando muito.
Publicado em 10/10/2020 17:34:08 |
Venha aprender, obrigado
Publicado em 28/10/2020 17:26:20 |
Muito bom.  
Publicado em 03/11/2020 00:20:29 |
Obrigado~~ Aprenda a aprender ~~~~~~~~
Publicado em 26/11/2020 21:26:44 |
Obrigado, LZ, por compartilhar
Publicado em 24/01/2021 03:02:19 |
Por que você precisa responder para ver?
Publicado em 06/03/2021 20:49:30 |
1111111111111111
Publicado em 02/05/2021 20:12:35 |
Aprendendo. Estudando muito.
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com