요소 만 사용하여 PageObject 요소의 식별자를 가져올 수 있습니까? (cheezy pageobject gem)페이지 객체의 요소 이름 가져 오기
요소의 이름을 유지하는 요소의 특성이 있습니까? 이 경우 예를 들어
: 난 단지 요소가있는 경우text_field(:name, :id => 'name')
, 어떻게 내가 그 이름을 찾을 수 있습니까? :)
도움 주셔서 감사합니다.
편집 :
이좋아, 그래서 여기 내가 뭘하려고 오전입니다 :
class AttributePage < PropertyPage
include PageObject
include DataMagic
page_url NavigationHelpers::get_path 'catalog-attributes'
# Header
textfield(:attribute_sets, :id =>'ext-1') # 1.
textfield(:global_attributes, :id => 'ext-2') # 2.
end
과를 :
을 나는 일부 요소 정의가 AttributePage라는 pageObject을 가지고 PageObject PropertyPage는 다음과 같습니다.
class PropertyPage
include PageObject
def get_search_filter_elements
element_methods = self.class.instance_methods(false).find_all{ |m| m =~ /_element$/ }
elements = element_methods.collect{ |m| self.send(m) }
return_array =[]
for x in 0...element_methods.size
return_array.append([element_methods[x].to_s.gsub('_element', ''), elements[x]])
end
return return_array
end
이 방법은, 내가
on_page(AttributePage).get_search_filter_elements
전화 나는 PageObject :: 요소의 목록을 얻을. 나는이 작업을 수행 할 수있는 방법이
def fill_elements
elements = get_search_filter_elements
elements.each do |element|
# Now this doesn't work
element.text = read_from_some_file_for_element_name element.name
end
이 : 내가하고 싶었던 무엇 는 다음과 같이 것 AttributePage.fill_elements 전화를했다? 참조
에 대한
'name'은 무엇을 의미합니까? 당신은'태그'에 대해 이야기하고 있습니까 .. 명확하지 않습니다 .. –
귀하의 질문은 관련이없는 구성 요소를 여기에 혼합합니다. "Element"는 일반적인 의미에서 항상 html의 요소를 나타냅니다. PO 보석의 Element Object는 'WatirWebDriver :: Element'또는 'SeleniumWebDriver :: Element'에 대한 일반적인 래퍼입니다. 이것을 명확히해야합니다. 마치 PageObject :: Element를 참조하는 것처럼 보이면 무엇을 묻고 있습니까? 이 예제에서 제공 한 메소드 이름은 무엇입니까? 답변 : text_field()에서 arg [0] : ': name'으로 제공 한 심볼 이름입니다. 이 메소드에 액세스하려면 페이지 객체의 컨텍스트에서 name_element()를 호출해야합니다. –
도와 줘서 고마워, Jared. 내가 찾고있는 것은 "이름", PO 요소의 ID입니다. Element 객체에만 액세스 할 수 있습니다. 그리고 Selenium :: Webdriver :: Element 만 가지고 있다면 어떻게 할 수 있습니까? "element.name"메소드 또는 이와 유사한 것이 있습니까? 감사. – Tiago