Có cách nào trong phiên bản mới nhất của Selenium DotNet Webdriver (2.22.0) để kiểm tra xem một phần tử có hiển thị trước khi nhấp/tương tác với nó không?Selenium C# Webdriver Cách phát hiện xem phần tử có hiển thị hay không
Cách duy nhất tôi tìm thấy là cố gắng xử lý ngoại lệ ElementNotVisible xảy ra khi bạn cố gắng gửi khóa hoặc nhấp vào nó. Thật không may điều này chỉ xảy ra sau khi một nỗ lực để tương tác với các yếu tố đã được thực hiện. Tôi đang sử dụng hàm đệ quy để tìm các phần tử với một giá trị nhất định và một số thành phần này chỉ hiển thị trong một số trường hợp nhất định (nhưng html của chúng vẫn còn ở đó cho dù chúng có thể tìm thấy gì).
Đó là sự hiểu biết của tôi rằng lớp RenderedWebElement không được chấp nhận cũng như các biến thể khác. Vì vậy, không đúc cho điều đó.
Cảm ơn.
Nên có một WebElement.isDisplayed() để kiểm tra xem phần tử là có thể nhìn thấy –
Thật không may bắt ngoại lệ là con đường để đi. Được hiển thị và được kích hoạt không phải lúc nào cũng hiển thị phần tử có thể hành động, có nghĩa là mục đó có thể vừa được hiển thị vừa được kích hoạt nhưng vẫn không thể nhấp được. Điều này xảy ra khi phần tử nằm ngoài khung nhìn (trong một số trình duyệt), và những gì bạn cần làm là di chuyển đến phần tử để nó trở nên hiển thị. – ljgww