2017-11-21 2 views
0

우리는 GUI 그리드를 기반으로 UI를 만들었습니다. ID가없고 클래스 이름이 매우 혼란하기 때문에 요소를 찾는 데 많은 어려움이 있습니다. 아래는 그 예입니다. 이걸 극복 할 수있는 방법을 제안 해주세요. 자료 나 링크가 있다면 공유하십시오. 미리 감사드립니다.로봇 프레임 워크를 사용하여 Ag-grid에서 자동화

Ques) '소득'헤더 아래에있는 데이터를 가져 오려고합니다. 이전에는 행/데이터가 '소득'헤더의 하위 요소가 될 응용 프로그램에 대해 작업했지만 지금은 다른 경우입니다. 태그는 '수입'헤더와 관계없이 위치하며 ('수입'의 하위 요소가 아닙니다) 첨부 파일 : Header and Data 헤더와 그 아래에 데이터를 표시합니다.

제가 따르는 접근 방식을 제안하십시오. 또한 Generic 함수를 만드는 것이 도움이 될 것입니다.

답변

0

그리드는 예측 가능한 개체이기 때문에 처음에는 분명하지 않더라도 구조가 있습니다. 당신의 욕망이 ag-grid을위한 일반 함수를 만드는 것이라면, ag-Grid Testing Utilities (100 줄)에있는 파이썬 테스트 라이브러리 함수를 이식하는 것이 좋습니다. 라이브러리 사용은 여기에서 설명합니다 : documentation.

또는 Get File 다음에 Execute Javascript이라는 파일 내용을 JS 파일에서 실행하려는 명령과 연결하여 라이브러리 전체를로드 할 수 있습니다.

그러나, 로케이터를 얻기 위해이 기능을 주위에 주로 회귀 것으로 보인다 :

getCssSelectorForRowAndCol = function (row, col, additionalSelector) { 
    additionalSelector = additionalSelector || ''; 
    return "div[row-id=\"" + row + "\"] div[col-id=\"" + col + "\"] " + additionalSelector; 
}; 

그래서이 사용자 정의 기능, 또는 사용자 정의 로케이터 전략을 수립 할 수 있도록해야한다. 간단한 예를 들면이 SO answer에 있습니다.

편집 : 예를 들어 아래의 질문에 대한 응답 :

*** Settings *** 
Library Selenium2Library 

Test Setup  Start Browser 
Test Teardown  Close Browser 
Suite Teardown Close All Browsers 

*** Test Cases *** 
Example Get Values 
    ${cell_value_row_2} Get Cell Value Test name   2 
    Log To Console Cell value for Name in Row 2: [${cell_value_row_2}] 

    ${cell_value_row_3} Get Cell Value Test mobile 3 
    Log To Console Cell value for mobile in Row 3: [${cell_value_row_3}] 

*** Keywords *** 
Get Cell Value Test 
    [Arguments] ${colum_name} ${row_number}=1 
    ${get_Text} Get Text xpath=//div[@row-id="${row_number}"]/div[@col-id="${colum_name}"] 
    [Return] ${get_Text} 

Start Browser 
    Open Browser https://www.ag-grid.com/example-runner/angular.php?section=angular-getting-started&example=rich-grid-example&fontawesome=1&bootstrap=1&enterprise=1&grid=%7B%22theme%22%3A%22ag-theme-fresh%22%2C%22height%22%3A%22100%25%22%2C%22width%22%3A%22100%25%22%2C%22enterprise%22%3A1%7D Chrome 
    Wait Until Element Is Visible xpath=//div[@class="ag-body-container"] 

명령 행에서 다음 줄을 초래할해야 :

Cell value for Name in Row 2: [Emily Braxton] 
Cell value for mobile in Row 3: [+8710 846 6100 158] 
+0

thnaks의 @A. Kootstra. 이 프레임 워크를 처음 접했을 때 제안한 것을 구현할 수 없었습니다. 제발 몇 가지 단계 나 예제를 제안 해주세요. – nik

+0

"열 이름"을 제공하는 셀의 텍스트를 가져 오는 방법을 분명히 설명한 예제가 나와 있습니다. 하지만, 제 경우에는 상황이 다릅니다. 행과 열의 수와 위치가 고정되어 있지 않기 때문에 함수에 '열'또는 '행'번호를 제공하고 싶지 않습니다. 즉, 헤더에 대한 데이터를 포함하는 태그가 하위 요소가 될지 확실하지 않습니다. 또한 헤더를 사용하여 데이터를 가져올 수 있도록 참조 태그를 알아낼 수 없었습니다. 내 요구 사항은 다음과 같습니다. '헤더'이름을 제공하고 그 아래에있는 모든 데이터를 가져옵니다. – nik

+0

온라인 데모에서 헤더 값을 보유하는 태그의 조부모에 열의 ID가 포함되어 있습니다. 그러나 첨부 된 스크린 샷에는 이것이 부족합니다. 코드 예제가 비슷하지만 태그 이름 중 일부가 다르기 때문에 데모 URL의 다른 버전과 다를 수 있습니다. 전체 페이지를 사용할 수 없기 때문에 헤더 항목의 수를 '세는 것'이 나에게 열에 대한 참조를 제공하는지 잘 모르겠습니다. 내 최고의 추측 중 전체 자바 스크립트 API 솔루션을 사용하거나 더 많은 정보를 추가 할 설정이 있는지 확인하는 것입니다. –

관련 문제