php - webdriver 기본 기능 (파충류)

12031 단어 PHP
지정 한 웹 페이지 열기
$driver->get("http://www.google.com.tw/");

입력 상자 조작
sendKeys
입력 상자 작업 은 가장 기본 적 인 것 입 니 다. 먼저 findElement 을 사용 하여 입력 할 input 를 찾 은 다음 sendKeys 를 통 해 지정 한 값 을 입력 해 야 합 니 다.
  • clear: input
  • sendKeys: input
  • $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: 요소 내용
  • getTagName: 요소 이름 가 져 오기
  • getAttribute
  • getCSSValue
  • getLocation: element 소재 위치 획득
  • getLocationOnScreenOnceScrolledIntoView
  • getSize
  • getID
  • isEnabled
  • isSelected
  • isDisplayed
  • clear
  • click
  • sendKeys
  • submit

  • getText 에서 element 의 innerText 내용 을 가 져 옵 니 다.
    Element 는 반드시 볼 수 있어 야 합 니 다. 숨 길 수 없습니다. 예 를 들 어 'display: none, opacity: 0; visibility: hidden' 은 text 를 얻 을 수 없습니다.
    $elm = $driver->findElement(
      WebDriverBy::cssSelector('.classname')
    );
    
    echo $elm->getText();
    

    좋은 웹페이지 즐겨찾기