Tôi đang sử dụng Selenium WebDriver kết hợp với java.awt.Robot để mô phỏng tốt hơn tương tác người dùng với ứng dụng web của chúng tôi. Vâng, tôi biết nó có lẽ không cần thiết, nhưng những khách hàng mà tôi phục vụ đòi hỏi nó.Vị trí Selenium WebDriver và HTML Window bằng cách sử dụng Java
Hiện tại mọi thứ đang hoạt động khá tốt, tuy nhiên tôi có một chút nhỏ trong đó tôi dường như không thể tìm được cách tốt để có được các yếu tố web 'trên vị trí màn hình. Những thứ như thanh tiêu đề, thanh menu, thanh điều hướng, vv đều đẩy nội dung xuống trên màn hình vật lý (mà Robot nhận tọa độ của nó từ), nhưng không ảnh hưởng đến nơi Selenium báo cáo phần tử đó.
Khi tôi gọi: element.getLocation();
trên Selenium WebElement, nó luôn mang lại cho tôi vị trí tương đối so với ngăn hiển thị nội dung HTML, chứ không phải chính cửa sổ trình duyệt.
Minh họa tốt hơn là: driver.findElement(By.tagName("body")).getLocation();
luôn trả về 0,0, bất kể vị trí thực tế trên màn hình của cửa sổ.
Hiện tại tôi đang hack nó bằng cách thêm một offset dọc và chiều ngang sau khi phóng to cửa sổ, nhưng không giống nhau giữa các trình duyệt khác nhau (ví dụ, trang trí hàng đầu của IE chiếm nhiều chỗ hơn). khác nhau cho mỗi người dùng nếu họ có thanh công cụ dấu trang, thanh tìm kiếm, v.v. được thêm vào.
Vâng, tôi biết tôi có thể chạy ở chế độ toàn màn hình, nhưng tôi không muốn, nếu có thể.
Có cách nào để sử dụng WebDriver để có được vị trí vật lý trên màn hình của các yếu tố một cách đáng tin cậy không?
Bạn có thể quan tâm đến việc gắn dấu sao vấn đề này để thể hiện sự quan tâm đến nhóm Selenium: https://code.google.com/p/selenium/issues/detail?id=5267 – kem