2010-01-22 3 views
0

셀레늄 클라이언트로 드래그 앤 드롭 js 테스트를하고 있습니다. 그것은 작동합니다 (이전과 이후에 screengrabs를 사용하여 요소를 명확하게 표시하여 장소를 전환 함). 그러나 변경 사항을 프로그램 적으로 주장하는 데 문제가 있습니다.어설 션 CSS 로케이터가 예상 값과 같습니다.

암 I, 정신적, 또는 내가 좋아하는 뭔가를 할 수 없습니다

selenium.assert_equal("css locator", "expected id of element")

이 경우, 같은 것을 볼 것이다 :에 대한 모든 팁

selenium.assert_equal("css=li:nth-child(1)", "li#list_item_2")

을 방법 이것을 구현하면 좋을 것입니다.

감사합니다,

아담

편집 : 나는 선택을하고 무엇 반환 selenium.get_element이 있다면, 나는 다음 단계의 주장을 수행 할 수 있습니다.

element = selenium.get_element("css=li:nth-child(1)")

assert_equal(element, "li#list_item_2")

(나는 생각한다).

답변

3

평등하지 않은 두 개의 문자열을 비교하기 때문에 예제가 작동하지 않습니다. 한 가지 방법은 아래에 보여로 요소가 isElementPreset을 사용하는 것입니다 이동 한 것을 주장합니다 :

//before drag and drop 
assertTrue(selenium.isElementPresent("css=#source li:nth-child(1)")); 
assertFalse(selenium.isElementPresent("css=#target li:nth-child(1)")); 

//drag and drop code here 
... 

//after drag and drop 
assertTrue(selenium.isElementPresent("css=#target li:nth-child(1)")); 
assertFalse(selenium.isElementPresent("css=#source li:nth-child(1)")); 

이 예제는 자바 클라이언트 API를 사용하지만 원하는 클라이언트 API에서 작업을 수행하는 방법을 해결하기 쉬워야한다 . 또한 위의 코드는 id가 'target'인 요소가 드래그 앤 드롭 이전에 하나의 자식 li 요소를 가지고 있는지 확인하고 이후에는 아무 것도 확인하지 않기 때문에 애플리케이션에 크게 의존합니다. HTML 소스의 스 니펫 (snippet)을 가지고 있다면 더 강력한 예제를 증명할 수있을 것입니다.