Làm cách nào để chúng tôi có thể xác minh xem một trường có được bảo vệ chống ghi (có nghĩa là, chỉ đọc) trong Selenium bằng mã Java không?Trình quản lý trang web Selenium - xác minh hộp văn bản được bảo vệ chống ghi?
Trân trọng
Làm cách nào để chúng tôi có thể xác minh xem một trường có được bảo vệ chống ghi (có nghĩa là, chỉ đọc) trong Selenium bằng mã Java không?Trình quản lý trang web Selenium - xác minh hộp văn bản được bảo vệ chống ghi?
Trân trọng
Bạn có thể thử viết một cái gì đó qua sendkeys() và kiểm tra xem giá trị thuộc tính của hộp chưa được thay đổi.
Cảm ơn tất cả những câu trả lời này. bằng cách nào đó tôi đã thử nghiệm tất cả những ý tưởng này và tôi đã thực hiện một ý tưởng đã chọn. Tên người dùng WebElementElement = driver.findElement (By.id ("tên người dùng")); usernameElement.sendKeys ("SampleText"); – ABCDEFG
Vì tôi không biết những gì bạn cần kiểm tra, tôi sẽ đăng một số ví dụ có thể hữu ích.
driver.findElements(By.cssSelector("input:not([readonly='readonly'])[type='text']"));
=> trả về tất cả các lĩnh vực đầu vào văn bản có thể chỉnh sửa
WebElement element = driver.findElement(By.id("username");
//can fail if the attribute is not there
String attribute = element.getAttribute("readonly");
=> có thể cần một khối try catch
làm thế nào để viết cho selenium RC? –
không thể giúp bạn với điều đó tôi chỉ sử dụng webdriver và grid2 – Tarken
Đó là Ok :-). Cảm ơn :-)). tôi đã nhận được giải pháp –
với selen-java 2.21.0 bạn có thể kiểm tra nếu được kích hoạt nó
driver.findElement(By.id("...")).isEnabled()
Sử dụng như thế này:.
WebElement some_element = driver.findElement(By.id("some_id"));
String readonly = some_element.getAttribute("readonly");
Assert.assertNotNull(readonly);
ĐỪNG xác minh getAttribute ("readonly") equals ("true") hoặc tương tự, trong các trình duyệt khác nhau nó có thể khác nhau là tốt. (chỉ đọc = "chỉ đọc" trong IE, chỉ đọc = "" trong FF, v.v.)
Dưới đây là Mã hoạt động tốt nhất cho tôi. Hy vọng điều này sẽ hữu ích
WebElement fieldName = driver.findElement(By.id("enter_id"));
fieldName.sendKeys("abc");
String fieldNameVal = fieldName.getAttribute("value");
if(fieldNameVal.contentEquals("abc")){
System.out.println("Field is editable");
}
else{
System.out.println("Field is non editable" + fieldNameVal);
}
Đây là câu trả lời muộn nhưng vì tôi đang làm việc về điều này gần đây, tôi muốn chia sẻ giải pháp của mình.
Tôi đã triển khai phương pháp để kiểm tra xem hộp văn bản có chỉ đọc hay không. Tôi đang làm việc trên một dự án Django để mã là bằng Python, nhưng tôi tin rằng đó là dễ dàng đến cổng nó để Java:
from django.contrib.staticfiles.testing import StaticLiveServerTestCase
class MyTest(StaticLiveServerTestCase):
def setUp(self):
self.browser = webdriver.Firefox()
def _is_text_box_read_only(self, web_element):
old_text = web_element.get_attribute("value")
web_element.send_keys("test")
new_text = web_element.get_attribute("value")
web_element.clear()
web_element.send_keys(old_text) # Resume to the previous text
return old_text == new_text
Lưu ý rằng:
value
để nhận được văn bản đã nhập.
có thuộc tính trong html cho biết hộp được bảo vệ không? – Tarken
yea- có một trường được gọi là 'chỉ đọc'. chi tiết sau đây dành riêng cho trường này ---- – ABCDEFG