2011-10-23 25 views
10

Tôi có một tình huống khi tôi đang sử dụng (sử dụng: trình điều khiển selenium) nhiều trình duyệt với Capybara để kiểm tra giao diện người dùng của tôi. Làm thế nào tôi có thể đóng một số người trong số họ bằng cách sử dụng Capybara, khi họ không cần thiết?Cách đóng trình duyệt bằng Capybara?

Trả lời

7

Nếu các tab/cửa sổ được mở bằng JavaScript thì JavaScript được phép đóng chúng. Bạn có thể thực thi JS trong thử nghiệm Capybara bằng cách sử dụng page.execute_script.

page.execute_script "window.close();" 
+0

này không làm việc cho tôi khi cố gắng để đóng cuối cùng mở cửa sổ khi sử dụng poltergeist/phantomjs, chỉ FYI cho người khác. –

1

Bên trong tập tin env.rb chèn mã này

After do |scenario| 
print "OZONEEEEE" 
page.execute_script "window.close();" 
# restart Selenium driver 
Capybara.send(:session_pool).delete_if { |key, value| key =~ /selenium/i } 
end 
5

Ngoài ra:

page.driver.browser.close 

Chắc chắn làm việc cho Selenium, dù có vẻ như thể không cho capybara-webkit.

1

Nếu bạn muốn đóng từng cửa sổ sau mỗi lần kiểm tra kết thúc chứ không phải đóng tất cả các cửa sổ ở phần cuối của bộ đồ thử nghiệm của bạn, hãy thử:

after do 
    Capybara.current_session.driver.quit 
end 
Các vấn đề liên quan