2012-01-10 38 views
6

tôi có những dòng sau trong tập tin tính năng của tôi:dưa chuột + Capybara kiểm tra để đảm bảo một cửa sổ mới được mở ra

Given I have website "www.google.co.uk" 
When I click the website "www.google.co.uk" 
Then "www.google.co.uk" page is opened in a new window 

Tôi đang phải vật lộn để tìm một cách để kiểm tra xem trang web được chắc chắn mở ở cửa sổ mới .

Hiện nay tôi đã được sử dụng điều này trong bước def của tôi:

Then /url "([^"]*)" is opened in new window/ do |url| 
    browser = page.driver.browser 
    current_id = browser.window_handle 
    tab_id = page.driver.find_window(url) 
    browser.switch_to.window tab_id 
    page.driver.browser.close 
    browser.switch_to.window current_id 
end 

nhưng điều này vẫn vượt qua kiểm tra nếu trang web được nạp trên cùng một trang, tôi muốn nó thất bại nếu các trang web được nạp vào cùng một cửa sổ/tab.

Mọi đề xuất?

Rất cám ơn

Trả lời

6

Tôi không thấy xác nhận nào trong thử nghiệm của bạn.

Tiếp cận của tôi sẽ là để kiểm tra kích thước của mảng window_handles sau khi thực hiện hành động cách nhấn vào liên kết, kể từ trước khi bấm vào kích thước phải bằng 1 và sau khi nhấn window_handles phải bằng 2.

assert page.driver.browser.window_handles.size == 2 

IMHO, đủ tốt , vì nếu trang web được tải trong cùng một tab, kích thước sẽ là 1 và thử nghiệm sẽ không thành công.

+0

Tình nguyện viên cho người bạn đời đó. Đó là hoàn hảo. Tôi chỉ mới bắt đầu với cucmber + capybara và tbh nhanh nhẹn. Nhưng một lần nữa cảm ơn sự giúp đỡ của bạn, nó cũng đã dọn dẹp những thứ khác cho tôi. – Dono

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