2016-12-22 4 views
0

저는 Selenium IDE를 사용하고 있습니다.Selenium IDE : 속성을 어설 션하는 방법은 무엇입니까

요소의 속성에 특정 값이 있는지 테스트하는 방법을 알고 있습니다. 하지만 애트리뷰트가 첫 번째 위치에 있는지 테스트하려면 어떻게해야합니까?

<tr> 
    <td>assertElementPresent</td> 
    <td>[email protected]</td> 
    <td></td> 
</tr> 

방법 : 여기

<tr> 
    <td>assertAttribute</td> 
    <td>[email protected]</td> 
    <td>disabled</td> 
</tr> 

는 속성이 처음부터 존재하는 경우 실패 테스트 라인입니다 : 여기

성공적 속성이 특정 값이 있는지 테스트 라인입니다 나는 그것을 작동 시키 느냐? 셀레늄에서

감사,

-Ilya

답변

0

당신은 "getAttribute를"방법을 사용할 수 있습니다, 그것은 "NULL"반환하는 경우가 더 속성이 전혀 없다는 것을 의미합니다 ...

문서 :

WebElement.getAttribute(attributeName) → Thenable<(string|null)> 

요소의 지정된 속성 값을 쿼리하는 일정을 예약합니다. 페이지가로드 된 후 수정 된 경우에도 현재 값을 반환합니다. 보다 정확하게는,이 메소드는, 속성이 존재하지 않는 한, 지정된 속성의 값을 돌려줍니다.이 경우, 같은 이름을 가지는 프롭퍼티의 값이 돌려 주어집니다. 어느 쪽의 값도 설정되어 있지 않은 경우, null가 돌려 주어집니다 (예를 들어, textarea 요소의 「value」프롭퍼티). "스타일"속성은 뒤 따르는 세미콜론이있는 텍스트 표현에 가장 적합하게 변환됩니다. 예를 들어

:

HTML 코드 : Nodejs에서

<div id="a"   >1</div> 
<div id="a" x="xxx" >2</div> 
<div id="a" x  >3</div> 

테스트 코드 :

var webdriver = require('selenium-webdriver'); 
var capabilitiesObj = { 
    'browserName'  : 'firefox' 
}; 
var driver   = new webdriver.Builder().withCapabilities(capabilitiesObj).build(); 
driver.get('http://localhost/customer.js/temp/index60.html'); 

driver.findElements(webdriver.By.css('div[id=a]')).then((elements) => { 
    elements[0].getAttribute('x').then((att)=> { 
     console.log(att); 
    }); 

}).catch(console.log.bind(console)); 

driver.quit(); 

다를 수 있습니다 각 사업부에 대한 결과 :

for div 1: null 
for div 2: 'xxx' 
for div 3: '' 
+0

그는 Selenium & Selenium IDE로 태그를 달았지만 질문은 IDE 솔루션을 요구하고있었습니다. – DMart

0

I 단순하게 생각하지 마라. id 로케이터가 속성을 처리합니다. 그래서 XPath는 전환 :

이 작동합니다 :

<tr> 
    <td>verifyElementPresent</td> 
    <td>xpath=//.[@id='id3' and @attribute1]</td> 
    <td></td> 
</tr> 

주 당신이 (ID1, ID2, ID3)를 특정 ID를 변경하는 경우는 처음 2 개 ID에 대한 통과하지만 3 실패 할 것이다 :

<div id="id1" attribute1="xyz" style="background-color: transparent;">Some text</div> 
<div id="id2" attribute1="" style="background-color: transparent;">Some text</div> 
<div id="id3" style="background-color: transparent;">Some text</div>