2013-07-18 3 views
2

.inspect을 사용하는 객체가 있습니다. 결과는 내가 "foo"Ruby 객체에서 문자열 액세스

내가 (대신 루비 개체 ID를 발견) @element.id을 시도했습니다

, @element[:id]@element.selector[:id]@element['selector'][:id]

어떤 도움에 액세스 할 수있는 방법을

#<Watir::Hidden:0x7b61410 located=false selector={:type=>"hidden", :tag_name=>"input", :id=>"foo"}> 

이하?

+0

당신이이 일을하려는 이유에 확장 할 수 있습니까? 표시되는 ID는 요소를 찾을 때 지정한 ID입니다. 예를 들어, 코드에는'@element = browser.hidden (: id => 'foo')'가능성이 있습니다. –

답변

1

일반적으로 이들은 객체의 인스턴스 변수입니다. 그들은 attr_accessor을 노출하지 않으면 개인 데이터를 만지고 있습니다. 개인 데이터는 일반적으로 눈살을 찌푸리게합니다.

그들이 같은 것을 사용하여 인스턴스 변수에 저장되어있는 경우 당신은 항상이를 얻을 수 있습니다 : 나는 그것이 나쁜 습관이다, 너무 광범위이 사용하지 것이다

@element.instance_variable_get('@selector')[:id] 

, 그러나 때때로 당신은에 있습니다 당신이해야 할 일을하십시오.

+0

'selector '는 검사에서'@'로 나타나지 않습니다. 그것은 인스턴스 변수처럼 보이지 않습니다. 아니면 그렇지? 나는 Waitr에 대해서 모른다. 검사가 특별합니까? – sawa

+0

의심스러운 경우 문제의 출처를 확인하십시오. 커스텀'inspect' 메쏘드를 가지고 있다면, 특별한주의를 기울여서'selector ='의 결과가 도출되는 방법을 보길 원할 것입니다. – tadman

+0

나는 그만큼 관심이 없다. 당신도 보이지 않습니다. 그럼, 상관 없어. – sawa