2011-08-24 2 views
4

저는 Selenium 확장을 사용하여 PHPUnit에서 Selenium 테스트 케이스를 작성하고 있습니다. 테스트에서 나는 특정 링크가 페이지에 있다고 주장한다. 예를 들어 Selenium 확장에서 PHPUnit에 glob을 사용하여 요소 식별하기

, 나는 다음과 같은 링크가 페이지에 존재한다는 것을 주장하고 싶은 말은 : 위해

<a href="http://www.stackoverflow.com">click here to enter stackoverflow</a> 

링크 내가 그것을 식별 할 필요가 존재 함을 주장 할 수 있습니다. 일반적으로 앵커 텍스트 인 assertElementPresent("link=click here to enter stackoverflow")을 사용하여 링크를 식별합니다.

전체 앵커 텍스트를 사용하지만 앵커 텍스트에 포함 된 하위 문자열 "stackoverflow"만 사용하여 링크를 식별하고 싶지 않습니다. glob와 star 연산자를 사용하면 다음과 같이 할 수 있습니다 : assertElementPresent("link=glob:*stackoverflow*") 이것은 셀레늄 IDE에서 완벽하게 작동하지만 PHPUnit에서 이에 상응하는 코드를 작성하면 어설 션이 실패합니다. 여기 phpunit을 코드의 해당 라인은 :

$this->assertTrue(isElementPresent("link=glob:*stackoverflow*")); 

소자 link=glob:*stackoverflow*가 확인되지 않기 때문에 상기 어서 실패. 페이지에 앵커 텍스트에 "stackoverflow"문자열이 포함 된 링크가 있기 때문에 요소를 식별해야합니다.

내 간단한 질문은 내가 제시 한 간단한 예제보다 더 일반적인 질문이다 : 어떻게 glob을 사용하여 Selenium 확장에서 PHPUnit의 요소를 식별 할 수 있습니까?

답변

2

우리는 모든 Selenium 테스트 케이스에서 XPath 표현식을 사용하지만 필자는 이들을 작성하는 데 관여하지 않았고 다른 옵션을 조사하지도 않았다. glob을 사용할 수있는 방법을 찾지 못하면 언제든지 다음 페이지로 돌아갈 수 있습니다.

self::assertTrue($this->isElementPresent("//a[contains(.,'stackoverflow')]")); 
관련 문제