Tôi đang cố gắng sử dụng Selenium WebDriver để nhập văn bản vào phần tử nhập GWT có văn bản mặc định, "Nhập ID người dùng". Dưới đây là một vài cách tôi đã cố gắng làm cho công việc này hoạt động:Tôi có thể xóa văn bản mặc định từ phần tử đầu vào bằng Selenium bằng cách nào?
searchField.click();
if(!searchField.getAttribute("value").isEmpty()) {
// clear field, if not already empty
searchField.clear();
}
if(!searchField.getAttribute("value").isEmpty()) {
// if it still didn't clear, click away and click back
externalLinksHeader.click();
searchField.click();
}
searchField.sendKeys(username);
Điều kỳ lạ ở trên chỉ hoạt động trong một khoảng thời gian. Đôi khi, nó kết thúc tìm kiếm "Nhập ID người dùng", về cơ bản bắt đầu nhập "tên người dùng" sau văn bản mặc định - và thậm chí không hoàn thành điều đó.
Bất kỳ cách nào tốt hơn, đáng tin cậy hơn để xóa văn bản mặc định khỏi phần tử GWT?
Đã chỉnh sửa để thêm: HTML của phần tử nhập. Thật không may, không có nhiều điều để xem, nhờ vào sự nóng bỏng JS/GWT. Đây là trường khi nó không được chọn:
<input type="text" class="gwt-TextBox empty" maxlength="40">
Sau khi tôi đã nhấp vào nó và đặt tiêu điểm theo cách thủ công, văn bản mặc định và lớp "trống" sẽ bị xóa.
JS đến setDefaultText()
được gọi là cả onBlur()
và onChange()
nếu thay đổi dẫn đến trường văn bản trống. Đoán đó là lý do tại sao searchField.clear()
không giúp ích gì.
Tôi cũng đã thực hiện phương pháp này trong chế độ gỡ lỗi và trong trường hợp đó, nó không bao giờ hoạt động. Khi chạy bình thường, nó hoạt động phần lớn thời gian. Tôi không thể nói tại sao, mặc dù.
Bạn có thể đăng bản sao HTML của kiểm soát và javascript có tương tác với điều khiển không? – Arran
Văn bản mặc định trong 'đầu vào' có xuất phát từ thuộc tính HTML5 của' trình giữ chỗ 'hay có một số loại 'onfocus' và' onblur' JavaScript không? –