2013-04-16 29 views
15

Dưới đây là đoạn code html ..xử lý iframe với Capybara ruby ​​

<iframe id="I0_1366100881331" frameborder="0" width="100%"> 
<div class="ZRa"> 
<span id="button" class="hAa Qo Bg" tabindex="0" role="button" title="" aria-  label="Click here to publicly +1 this." aria-pressed="false"> 
</div> 
</iframe>  

Trong kịch bản trên, tôi muốn chuyển vào (id iframe = "I0_1366100881331") IFRAME để thực hiện một số hành động trên mặt SPAN trong đó IFRAME. Tôi đã thử với hầu hết các trường hợp, nhưng không có kết quả: (... bất kỳ một xin vui lòng giúp

Tôi muốn các giải pháp cho dưa chuột chỉ sử dụng Capybara ruby ​​..

Lưu ý:. Tôi đã thử với đoạn mã sau nhưng không có . kết quả

page.driver.browser.switch_to.frame "I0_1366100881331"

+0

có thể trùng lặp: http://stackoverflow.com/questions/11909149/how-can-i-switch-between-two-frames-with-capybara –

Trả lời

11

tôi nghĩ rằng bạn có thể thử sử dụng phương pháp:

within_frame 'id' do 
    <code for dealing with iframe entries> 
end 
+1

'id' không phải là tĩnh. Nó đang thay đổi mỗi lần (làm mới trang), sau đó cách chúng ta có thể xử lý khung nội tuyến bằng cách sử dụng 'id'. Bạn có thể đề nghị không? –

+0

Bài đăng cũ, nhưng bạn phải có khả năng nhận được ID của khung bằng cách nào đó đã cung cấp mã mẫu bạn đã đăng ở trên. – Hannele

25
within_frame(find('<css rule>')) do 
    <code for dealing with iframe entries> 
end 
.210
+0

Điều này làm việc tốt cho tôi, và vì nó sử dụng 'find' Capybara sẽ đợi khung xuất hiện trên trang nếu cần thiết. – user01380121

0

có thể có mã này:

withinframe((:xpath,"//div")) do 
#code 
end 
+0

Vui lòng giải thích mã của bạn – quinz

Các vấn đề liên quan