php - webdriver 기본 기능 (파충류)
12031 단어 PHP
$driver->get("http://www.google.com.tw/");
입력 상자 조작
sendKeys
입력 상자 작업 은 가장 기본 적 인 것 입 니 다. 먼저 findElement 을 사용 하여 입력 할 input 를 찾 은 다음 sendKeys 를 통 해 지정 한 값 을 입력 해 야 합 니 다.
$element = $driver->findElement(
WebDriverBy::cssSelector('.input')
);
$element->clear(); //
$element->sendKeys("test value");
조작 방향 키
sendKeys: WebDriverKeys::LEFT
다음 범례 는 input 에 'AC' 라 는 두 글 자 를 입력 한 다음 방향 키 를 조작 하여 왼쪽으로 한 칸 이동 한 다음 에 B 를 입력 합 니 다. 마지막 결과 input 에 'ABC' 라 는 문자열 이 있 습 니 다.
$element = $driver->findElement( WebDriverBy::cssSelector('input'));
$element->sendKeys("AC");
$element->sendKeys(WebDriverKeys::LEFT);
$element->sendKeys("B");
선택 선택
selectByValue
일반적으로 sendKeys 방식 으로 option 을 선택 할 수 있 습 니 다. 그러나 selenium 이 미리 설정 한 method sendKeys 는 당신 이 본 텍스트 내용 을 선택 하 는 것 입 니 다. 예 를 들 어 저 는 선택 한 value = "math", text = "수학" 이 있 습 니 다. 그러면 제 프로그램 은 sendKeys ("수학") 를 이렇게 써 야 합 니 다. 문자 내용 은 여러 가지 이유 로 그 값 을 바 꿀 수 있 습 니 다.그래서 저 는 value 를 선택 하 는 경향 이 있 습 니 다.
한편, pp - webdriver 는 이미 다른 방식 으로 option 을 선택 할 수 있 습 니 다. WebDriverSelect 의 selectByValue 를 사용 하면 text 가 아 닌 value 를 직접 선택 할 수 있 습 니 다. 많이 편리 하지 않 습 니까?
$elm = $driver->findElement(
WebDriverBy::cssSelector("select")
);
$selectAcao = new WebDriverSelect($elm);
$selectAcao->selectByValue("math");
select 의 값 을 바 꾸 고 Change Event 를 실행 합 니 다. phop - webdriver sendKeys 방식 으로 select 를 선택 하면 두 가지 문제 가 있 습 니 다. 첫 번 째 문 제 는 선택 할 label 이름 만 지정 할 수 있 고 value 를 지정 할 수 없습니다. 두 번 째 문 제 는 select 옵션 을 선택 한 후에 브 라 우 저 는 selectchange 이 벤트 를 자동 으로 실행 하지 않 습 니 다.Selenium 은 원래 Javascript 으로 썼 기 때문에 Selenium 자체 가 Javascript 으로 select 의 값 을 수정 합 니 다. 그러면 change event 를 촉발 할 수 없습니다.
여기 서 저 는 YUI 3 을 사용 하여 select 의 value 를 선택 하고 select 의 change event 를 자동 으로 실행 합 니 다. (테스트 할 웹 페이지 는 YUI 3 를 불 러 와 야 합 니 다. 물론 executeScript 로 YUI 3 를 불 러 올 수도 있 습 니 다.)
$driver->executeScript('YUI().use("node","node-event-simulate", function(Y) { var s = Y.one(".class select").set("value", "xxx"); });');
$driver->executeScript('YUI().use("node","node-event-simulate", function(Y) { Y.one(".class select").simulate("change"); });');
자 바스 크 립 트 실행
executeScript
Selenium 을 사용 하 는 데 편리 한 method 가 있 습 니 다. 바로 executeScript 입 니 다. 많은 Selenium 이 지원 하 는 기능 이 없 으 면 자바 script 을 직접 사용 하여 실행 할 수 있 습 니 다.
$driver->executeScript('var d = document.querySelector(".class"); d.style.visibility="visible";');
드래그 앤 드 롭
$sourceElm = $driver->findElement(WebDriverBy::cssSelector('.source'));
$targetElm = $driver->findElement(WebDriverBy::cssSelector('.target'));
$action = $driver->action();
$action->dragAndDrop($sourceElm, $targetElm)->perform();
요소 조작
getText 에서 element 의 innerText 내용 을 가 져 옵 니 다.
Element 는 반드시 볼 수 있어 야 합 니 다. 숨 길 수 없습니다. 예 를 들 어 'display: none, opacity: 0; visibility: hidden' 은 text 를 얻 을 수 없습니다.
$elm = $driver->findElement(
WebDriverBy::cssSelector('.classname')
);
echo $elm->getText();
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.