>백엔드 개발 >PHP 문제 >셀레늄 PHP 환경을 설정하는 방법

셀레늄 PHP 환경을 설정하는 방법

藏色散人
藏色散人원래의
2022-11-06 10:27:421536검색

Selenium PHP 환경 설정 방법: 1. 최신 스레드 안전 버전의 PHP zip 패키지를 다운로드합니다. 2. "php.ini-development" 복사본을 복사하고 이름을 "php.ini"로 바꾸고 설치에 넣습니다. 3. 시스템 변수 설정 아래 경로는 "D:Softwarephp-7.2.28-Win32-VC15-x64;"입니다.

셀레늄 PHP 환경을 설정하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 8.1, Dell G3 컴퓨터.

셀레늄 PHP 환경을 설정하는 방법은 무엇입니까?

Windows 환경에서 PHP+셀레늄 환경 구축

최근에 자동화 테스트를 시작하고 싶었고, 이전에 UI 테스트 부분에서 코드셉션을 사용하는 방법에 대해 쓴 적이 있습니다. 이제 관련 환경을 구축해 보겠습니다.

  • PHP 환경 구축

1. PHP 다운로드 주소 http://windows.php.net/download로 이동하여 최신 스레드 안전 버전의 PHP zip 압축 패키지를 다운로드하고 압축을 푼 다음 설치하려는 경로입니다. (win7 시스템은 php7.4 버전을 사용할 수 없으며 VCRUNTIME140.dll이 누락되었다는 메시지가 표시됩니다.)

2 PHP 설치 디렉토리에 들어가서 php.ini-development 복사본을 복사하세요. 이름을 php.ini로 바꾸고 설치 경로 아래에서 ;extension_dir=ext를 열어서 주석을 제거하고 값을 PHP 설치 경로 ext로 변경합니다.

3. 컴퓨터->속성->고급 시스템 설정->환경 변수->시스템 변수 아래 경로를 마우스 오른쪽 버튼으로 클릭하고 편집을 클릭한 후 PHP 경로 D:Softwarephp-7.2.28-Win32-VC15를 추가합니다. -x64;

이제 PHP 설치가 완료되었습니다. 그림과 같이 cmd를 열어 해당 버전을 볼 수 있습니다.

  • Java 실행 환경 구축에 대해 설명해야 합니다. Selenium 실행 파일은 jar 패키지이므로 이를 빌드해야 합니다. Selenium은 좋은 Java 실행 환경에서 활성화되어야 합니다.

공식 웹사이트 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html에 들어가서 적합한 버전을 찾아 jdk를 다운로드하세요.

  • 셀레늄 파일 다운로드 http://selenium-release.storage.googleapis.com/index.html (셀레늄 다운로드 주소) selenium-server-standalone-3.8.0의 jar 패키지 파일을 다운로드하세요. jar, 버전을 직접 선택할 수 있습니다.

  • 브라우저 드라이버 파일을 다운로드하세요(참고: 컴퓨터에 설치된 브라우저 버전과 일치하는 드라이버 파일을 다운로드해야 합니다). Google 브라우저에서 사용하는 드라이버 파일 이름은 chromedriver, https://chromedriver.storage.googleapis.com/index.html (chrome 드라이버 다운로드 주소)입니다. Firefox의 드라이버 파일 이름은 다음과 같습니다: geckodriver.exe, https://docs.seleniumhq.org/download/ (다운로드하려면 Selenium 공식 웹사이트로 이동하여 Java를 선택하세요.)

해당 버전의 chrom 및 chromedriver의 경우 다음을 수행할 수 있습니다. 각 버전의 메모를 확인하세요. Chrome 버전 번호는 chrome://settings/help

를 통해 확인할 수 있습니다. 참고: 다운로드한 드라이버 파일은 PHP

    의 루트 디렉터리에 있어야 합니다.
  • PHP+selenium 파일 데모를 https://github.com/facebook/php-webdriver에서 다운로드하세요(참고용으로 테스트 파일 아래에 example.php 및 사례 문서가 있습니다).
  • 데모 작성 후 테스트할 수 있습니다. 먼저 다운로드한 Selenium jar 패키지 파일을 실행하고 cmd 명령줄에 Selenium 파일이 있는 디렉터리를 입력한 후 다음 명령을 실행합니다(참고: 구성해야 함). 두 번째 단계에서는 java 실행 환경 변수) java -jar selenium-server-standalone-3.8.0.jar. 명령줄에 다음 프롬프트가 나타나면 시작이 성공한 것입니다.

example.php 실행 시 주의사항: 정의되지 않은 인덱스: D:testvendorfacebookwebdriverlibRemoteRemoteWebDriver.php의 178행 ELEMENT,

조사 결과 최신 버전의 Selenium 통신 프로토콜 변경으로 인해 발생했습니다. 시작 시 관련 매개변수 제어를 추가할 수 있습니다.

java -jar selenium-server-standalone-3.8.0.jar -enablePassThrough false至此,通过编写example.php文件便可实现简单的自动登录流程。

exum.php를 실행하기 전에 ekwing 아래의 공급업체 디렉터리를 phpDirver 디렉터리에 복사해야 합니다.

example.php를 수정하여 다른 웹사이트에 대한 자동 로그인을 실현할 수 있습니다. PHP는 다음과 같습니다.

<?php
// An example of using php-webdriver.
// Do not forget to run composer install before. You must also have Selenium server started and listening on port 4444.namespace Facebook\WebDriver;use Facebook\WebDriver\Remote\DesiredCapabilities;use Facebook\WebDriver\Remote\RemoteWebDriver;require_once(&#39;vendor/autoload.php&#39;);// This is where Selenium server 2/3 listens by default. For Selenium 4, Chromedriver or Geckodriver, use http://localhost:4444/$host = &#39;http://localhost:4444/wd/hub&#39;;$capabilities = DesiredCapabilities::chrome();$driver = RemoteWebDriver::create($host, $capabilities);$driver->manage()->window()->maximize();// navigate to Selenium page on Wikipedia$driver->get(&#39;http://www.baidu.com/Login/s?name=lzxx&#39;);// write &#39;PHP&#39; in the search box$driver->findElement(WebDriverBy::id(&#39;name&#39;)) // find search input element->sendKeys(&#39;xxxx&#39;); // fill the search box$driver->findElement(WebDriverBy::id(&#39;xxxx&#39;))    ->sendKeys(&#39;88888888&#39;);//$driver->submit(); // submit the whole form

// wait until &#39;PHP&#39; is shown in the page heading element
//$driver->wait()->until(
//    WebDriverExpectedCondition::elementTextContains(WebDriverBy::id(&#39;firstHeading&#39;), &#39;PHP&#39;)
//);

// print title of the current page to outputecho "The title is &#39;" . $driver->getTitle() . "&#39;\n";// print URL of current page to outputecho "The current URL is &#39;" . $driver->getCurrentURL() . "&#39;\n";// find element of &#39;History&#39; item in menu
//$historyButton = $driver->findElement(
//    WebDriverBy::cssSelector(&#39;#jsLoginBtn&#39;)
//);$historyButton = $driver->findElement(
    WebDriverBy::id(&#39;jsLoginBtn&#39;)
);// read text of the element and print it to outputecho "About to click to button with text: &#39;" . $historyButton->getText() . "&#39;\n";// click the element to navigate to revision history page$historyButton->click();// wait until the target page is loaded$driver->wait()->until(
    WebDriverExpectedCondition::titleContains(&#39;教师首页&#39;)
);// print the title of the current pageecho "The title is &#39;" . $driver->getTitle() . "&#39;\n";// print the URI of the current pageecho "The current URI is &#39;" . $driver->getCurrentURL() . "&#39;\n";// delete all cookies
//$driver->manage()->deleteAllCookies();

// add new cookie$cookie = new Cookie(&#39;cookie_set_by_selenium&#39;, &#39;cookie_value&#39;);$driver->manage()->addCookie($cookie);// dump current cookies to output$cookies = $driver->manage()->getCookies();print_r($cookies);$driver->get(&#39;http://www.ekwing.com/exam/teacher/selflist&#39;);// close the browser
//$driver->quit();

다툼: Selenium은 PHP 언어의 통합 프레임워크를 지원하지 않기 때문에 Selenium을 사용하여 프로젝트에서 기능 테스트를 수행하려면 다양한 스크립트를 직접 결합해야 합니다. 이는 거의 작성과 같습니다. 프레임워크.

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 셀레늄 PHP 환경을 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.