WebDriver.findElement 및 WebDriver.findElements 대신 자주 사용하는 사용자 지정 찾기 메서드가 있습니다. 이러한 메서드는 By 로케이터와 정규식을 모두 포함하는 사용자 지정 로케이터 개체를 사용하고 By 로케이터와 일치하고 정규 표현식과 일치하는 텍스트를 가진 WebElement 또는 WebElements를 반환합니다.새로운 찾기 메서드를 사용하여 WebElement 확장
이들은 수많은 경우에 매우 유용하며 동일한 기능을 WebElement.findElement 및 WebElement.findElements에 제공하고 싶습니다. WebElement 인터페이스를 구현하는 새 클래스를 만들 수 있으며 이러한 새로운 find 메서드도 포함되어 있지만 실제로 작동하는지 여부는 혼란 스럽습니다. 결국 FireFox에 대해 실행할 때 드라이버가 반환하는 요소는 FireFoxWebElements입니다. IE와 비교할 때 InternetExplorerElements입니다. 이 두 가지 모두 WebElement를 구현하지만 WebElement를 구현하는 사용자 정의 클래스와 완전히 관련이 없습니다. 맞습니까? 그들은이 여분의 기능을 가지지 않을 것이고, 그들은 나의 커스텀 클래스로서 다루어 질 수 없다.
WebElement가 WebElements의 유일한 "소스"이기 때문에 WebElements가 내 코드에 도착하는 근본적인 방법이므로 사용자 정의 findElement 메서드를 변경할 수 있습니다 (WebDriver .findElement (s), 궁극적으로) 내 특별한 element.find 메소드가 포함 된 WebElement에 대한 새 사용자 정의 래퍼를 반환 하시겠습니까? 그런 식으로 내 코드에 도착한 모든 WebElements는 내가 원하는 추가 찾기 메서드로 이러한 사용자 지정 요소가됩니다. 권리? 그렇다면, 래퍼 클래스는 어떻게 생겼을까요?
여기까지 확장하려면 셀레늄을 완전히 포기하는 방법에 대해 생각해보십시오. – Arran
@Arran 멀리 갈 필요가 없습니다. 모든 것을 완전히 다시 구현하지 않고도 동일한 목표를 달성 할 수있는 가능성이 높습니다. – JimEvans
@JimEvans, 요점은, 항상 좋은 dev 에의 한에서 그것을 듣고. – Arran