2012-04-09 3 views
0

호버 상자의 정보 내용을 stdout에 인쇄해야하며 아래 양식으로 시도해 보았습니다.watir에서 호버 상자 정보를 추출하여 표준 출력으로 인쇄하는 방법

data = $browser.div(:class => "homeSectionLabel textWidget",:text => /Pool A/).hover 

print "Data #{data} \n" 

다른 문제는 동일한 클래스 이름을 가진 풀 B라는 다른 위젯이 있다는 것입니다. 해당 호버 정보에 액세스하는 방법

<div class="widgetContainer poolContainer"> 
<div class="healthBadge healthUnknown" style="top: -5px; left: -5px;"></div> 
<div class="homeSectionLabel textWidget">Pool‌·A</div> 
<div class="perfDisplay homePoolPerf"> 
</div> 
<div class="homePoolVolText textWidget">9‌·Volumes,‌·0‌·Snapshots</div> 
<div class="spaceMeterContainer poolMeter" style="width: 265px; height: 20px;"> 
</div> 
<table class="tableWidget homeTiers" cellspacing="0" cellpadding="0" border="0"> 
</table> 
</div> 

Anyhelp 정말 고맙습니다.

감사합니다.
Aditya

+1

같은 시도 . –

+1

Aditya, 개발자에게 결함을 작성하는 것처럼 이러한 유형의 질문을 작성해야합니다.사람들이 문제를 재현 할 수 없다면, 그들은 당신을 위해 효과가있을 해결책을 생각하기가 어렵습니다. 사람들은 HTML, 코드 (제공 한 것), 작동하지 않은 것 (오류 메시지가 있었습니까?)과 같은 기본 정보를 제공 할 수 없다면 거의 노력하지 않으려합니다. –

+0

한숨 ... 이틀간에, 그는 7 시간 전에 마지막으로 보였고, 여전히 샘플 HTML의 흔적은 없습니다. 당신은 대답이 얼마나 심하게 필요하다는 것을 궁금하게 생각합니까? –

답변

0

이 순간에 대답의 많은 아니라, 제가 코멘트

사업부 내의 텍스트와 같은 '내용'에 맞지 않는 말을하는 것은 일반적으로는 .text에 액세스 할 수 있습니다 방법

'툴팁'텍스트는 alt 속성을 통해 전송할 수 있으며 'onmouseover'이벤트를 통해 실행되는 자바 스크립트를 통해 전송할 수도 있고 일반적으로 : hover psuedoclass를 통해 CSS를 전송할 수도 있습니다. .

사업부는 단지, 그것은 사용자에게 표시되도록이 디스플레이 속성 또는 위치 변경되면 다음

그것으로부터는 .text을 그 DIV를 찾는 방법을 알아 내려고하면된다, 얻을하는 데 필요한 모든 mydata = browser.div (: how => 'what'). 텍스트

마우스 오버/마우스 오버의 결과로 div (또는 다른 컨테이너)의 내용이 변경되는 경우 작업을 시뮬레이트해야합니다 클라이언트 측 코드가 실행될 수 있도록 잠시 기다린 다음, 변경된 컨테이너에서 .text를 가져옵니다. 코드가 작업 한 페이지를 보지 않고


, 그것은 내가 'onMouseover와'사용자가 제공 한 코드처럼 아무것도 볼 주어진 있지만, 어떤 경우인지 말하기 어렵다, 내 첫 번째 좋은 방법은 될 것 이 CSS를 주도하고있다.

위의 코드는 .hover 메서드를 실행하는 div 개체의 결과를 반환하는 것이며 그 메서드는 무언가를 일으키지 만 값을 반환하지 않기 때문에 내가 아는 한 nil이 될 것입니다.

'풀 A'는 캡처하려는 텍스트입니까, 아니면 사용자가 다른 텍스트를 보이게하려면 mouse_over입니까? 그것이 마우스 오버 일 경우 다른 div에 나타나는 텍스트를 찾을 수 있는지 HTML을 검색 했습니까?

그냥 주어진 클래스의 모든 사업부에서 텍스트를 얻을 필요가 경우, HTML 또는 우리가 당신을 도울 수 그렇게 테스트하는 페이지에 대한 링크를 제공하시기 바랍니다이

browser.divs(:class => "homeSectionLabel textWidget").each do |div| 
    puts div.text 
end 
0

가장 최근의 의견에 따라 페이지의 모든 div에서 클래스 이름을 수집하여 콘솔에 인쇄합니다.

$browser.divs.each do |div| 
puts div.class 
end 

파일에 넣으려면 "puts div.class"를 파일 지시어로 바꿉니다. 모든 출력은 단순한 루비입니다.