Tôi có một ứng dụng GWT mà tôi đang cố gắng viết một số thử nghiệm bằng cách sử dụng Selenium.Làm cách nào để chỉ chọn các phần tử hiển thị bằng XPath?
Tôi đang sử dụng XPath để xác định các yếu tố trên trang để kiểm tra. Sử dụng id
sẽ không hoạt động vì giá trị id
được GWT tạo tự động và có thể thay đổi. Mọi thứ bắt đầu diễn ra tốt đẹp khi tôi nhận ra rằng tôi có thể tìm thấy các nút theo nhãn của họ như sau:
//button[.='OK']
Tuy nhiên, khi tôi bắt đầu chạy nhiều thử nghiệm, tôi bắt đầu gặp sự cố. Tôi nhận ra rằng vấn đề là tất cả các "trang" khác nhau của ứng dụng GWT khi được tạo bởi Javascript vẫn còn trong HTML trong các phần tử <div>
ẩn. Điều này có nghĩa là các bài kiểm tra Selenium của tôi đôi khi nhấp vào các nút ẩn thay vì nút hiển thị trong chế độ xem hiện tại.
Kiểm tra HTML với Firebug, có vẻ như GWT ẩn các phần tử <div>
bằng cách thêm display: none
vào thuộc tính style
của chúng. Điều này có nghĩa tôi có thể tìm thấy tất cả các nút OK ẩn như sau:
//div[contains(@style,'display: none')]//button[.='OK']
này sẽ tìm thấy tất cả các nút OK ẩn, tức là các nút mà có một tổ tiên <div>
được ẩn bằng cách display: none
trong style
.
Câu hỏi của tôi là: làm cách nào để sử dụng XPath để chỉ tìm các nút OK hiển thị? Làm cách nào để tìm các nút không có tổ tiên của các thành phần <div>
với display: none
trong số style
?
Vậy là xong. Cảm ơn nhiều. –
Cuối cùng không hoạt động nếu có một div khác trong cây dom không bị ẩn:
– Fortega@Fortega và được nói trong văn bản xung quanh nó –