이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 177007|회답: 27

[출처] .Net/C# 셀레늄 자동 테스트가 쿠키 값을 얻습니다

[링크 복사]
게시됨 2020. 7. 5. 오전 11:44:34 | | | |
수요

로그인 시뮬레이션 요청이 너무 복잡하기 때문에, Selenium을 사용해 Google Chrome을 열어 로그인 후 쿠키 값을 얻고, 쿠키 콘텐츠를 저장해 웹사이트의 관련 인터페이스로 요청하여 테스트를 자동화하고자 합니다.

셀레늄

Selenium은 웹 애플리케이션 테스트를 위한 도구입니다. Selenium 테스트는 실제 사용자가 하는 것처럼 브라우저에서 직접 실행됩니다. 지원되는 브라우저로는 IE(7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera 등이 있습니다. 이 도구의 주요 기능은 다음과 같습니다: 브라우저 호환성 테스트 - 애플리케이션이 다양한 브라우저와 운영체제에서 잘 작동하는지 테스트할 수 있습니다. 시스템 기능 테스트 – 소프트웨어 기능과 사용자 요구사항을 검증하기 위한 회귀 테스트를 생성합니다. .Net, Java, Perl 등 다양한 언어로 동작 자동 기록과 테스트 스크립트 자동 생성을 지원합니다.

먼저, 프로젝트 이름이 "chrome-cookie-demo"이고 .NET 프레임워크 버전은 4.7.2인 새로운 C# 콘솔 프로젝트를 만들어봅시다.

nuget 명령어는 다음과 같습니다:

Selenium.WebDriver.ChromeDriver 설치 후 프로젝트 디버그 디렉터리에 chromedriver.exe 파일이 생성됩니다.
Selenium.WebDriver는 추상적인 인터페이스로 이해되며, 각 브라우저가 스스로 이 인터페이스를 구현합니다. Selenium.WebDriver는 Selenium.WebDriver.ChromeDriver(chromedriver.exe)를 호출chromedriver.exe 얻은 매개변수에 따라 네이티브 설치된 구글 크롬을 실행한 후 해당 작업을 수행합니다.

물론, 전제 조건이 있습니다.컴퓨터에 Google Chrome이 설치되어 있어야 합니다

코드는 다음과 같습니다:

오차는 다음과 같습니다:


System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83



즉, 현재 드라이버는 구글 크롬 83 버전을 지원하지 않는다는 뜻입니다. 컴퓨터에 설치된 버전을 다음과 같이 확인하세요:


(버전 71.0.3578.98)

기본 구글 크롬을 업그레이드하고 재시작하면 문제가 해결됩니다(또는 요구 조건에 맞는 브라우저 버전을 설치하세요).

우리는 크롬쿠키 데모 프로젝트를 다시 실행하려고 했고, 사이트는 정상적으로 열릴 수 있다는 것을 알게 되었지만,웹페이지가 로그인되어 있지 않습니다。 이 사이트를 열기 위해 브라우저를 클릭하면 상태가 로그인되어 있습니다.

해결책은 다음 코드로 user-data-dir 매개변수를 설정하는 것입니다:

프로그램을 재시작하면 다음과 같은 오류가 발생합니다:

처리되지 않은 예외: OpenQA.Selenium.WebDriverException: 유효하지 않은 인수: 사용자 데이터 디렉터리가 이미 사용 중이며, --user-data-dir 인자에 대해 고유 값을 지정하거나 -- user-data-dir
   OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
   at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary'2 parameters)
   In OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
   OpenQA.Selenium.Remote.RemoteWebDriver에서: ctor(ICommandExecutor commandExecutor, ICapabilitys desiredCapabilities)
   OpenQA.Selenium.Chrome.ChromeDriver에서: ctor(ChromeDriverService 서비스, ChromeOptions 옵션, TimeSpan 명령어, TimeTimeout)
   OpenQA.Selenium.Chrome.ChromeDriver에서: ctor(ChromeDriverService 서비스, ChromeOptions 옵션)
   chrome_cookie_demo. Program.Main(String[] args) 위치 C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: 36번 행

대략적으로 폴더가 점유되어 있으니 교체해 주세요, 해결책은 다음과 같습니다:열려 있는 구글 크롬을 닫고 우리가 작성한 "chrome-cookie-demo" 프로그램의 사용자 데이터 폴더를 사용하세요

웹 쿠키 받기

driver.manage().getCookies();   모든 쿠키 목록 반환
driver.manage().getCookieNamed(arg0);  이름별로 특정 쿠키를 반환하세요
driver.manage().addCookie(arg0);   쿠키를 생성하고 추가하세요
driver.manage().deleteCookie(arg0);  특정 쿠키를 삭제하세요
driver.manage().deleteCookieNamed(arg0); 이름에 따라 특정 쿠키를 삭제하세요
driver.manage().deleteAllCookies();  모든 쿠키를 삭제하세요

문서조사:하이퍼링크 로그인이 보입니다.

우리는 모든 웹 쿠키를 얻기 위해 테스트합니다

디스커버리,"HttpOnly"의 쿠키 정보를 읽을 수 있습니다., 아래 그림에서 볼 수 있습니다:



물론, 쿠키 정보를 문자열로 변환한 후 요청 제출 인터페이스를 시뮬레이션한 뒤, 소스 코드의 문자열에 변환 방법을 첨부해야 합니다.

소스 코드 다운로드:

하이퍼링크 로그인이 보입니다.

(끝)

점수

참가자 수1MB+1 기여하다+1 무너지다 이유
JGSKINGSTONE + 1 + 1 정말 강력해!

모든 평점 보기





이전의:EF(CodeFirst) + MySQL
다음:MSSQL 조건부 쿼리 WHERE는 조건을 무시합니다
게시됨 2022. 5. 14. 오전 10:22:54 |
프롬프트:작가가 차단되거나 삭제되면 콘텐츠가 자동으로 차단됩니다
게시됨 2022. 5. 14. 오전 10:21:26 |
프롬프트:작가가 차단되거나 삭제되면 콘텐츠가 자동으로 차단됩니다
게시됨 2021. 11. 27. 오후 5:31:04 |

.NET 셀레늄 시뮬레이션은 여전히 훌륭합니다, 감사합니다.
게시됨 2020. 7. 5. 오후 12:46:59 |
괜찮아 보입니다
게시됨 2020. 8. 18. 오전 10:45:14 |
배우는 것. 열심히 공부하고 있어요.
게시됨 2020. 10. 10. 오후 5:34:08 |
와서 배워, 고마워
게시됨 2020. 10. 28. 오후 5:26:20 |
아주 좋아요.  
게시됨 2020. 11. 3. 오전 12:20:29 |
감사합니다~~ 배우는 법을 배우세요~~~~~~~~
게시됨 2020. 11. 26. 오후 9:26:44 |
공유해줘서 고마워요, LZ
게시됨 2021. 1. 24. 오전 3:02:19 |
왜 답장을 해야 보여?
게시됨 2021. 3. 6. 오후 8:49:30 |
1111111111111111
게시됨 2021. 5. 2. 오후 8:12:35 |
배우는 것. 열심히 공부하고 있어요.
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com