Challenge 4 selenium java

Problem

  • isSelected() –> return boolean, nếu bạn save giá trị trả về vào biến có data type là Boolean thì nó không hiệu quả, vì phải thực hiện quá trình convert type từ boolean –> Boolean
  • Sau đó, ở bên dưới if(isSelected == false), lại so sánh giữa Boolean boolean. Java lại 1 lần nữa phải, convert từ Boolean –> boolean rồi so sánh.
  • Cuối cùng, việc so sánh if(isSelected == false) không tối ưu.

Có thể có nhiều bạn chưa biết boolean Boolean là 2 thứ khác nhau

  • boolean là primitive type
  • Boolean là Wrapper class

Quá trình convert từ primitives type (dữ liệu nguyên thủy) sang wrapper class tương ứng gọi là boxing và ngược lại là unboxing. Quá trình convert này JVM tự động làm, người lập trình không cần can thiệp. Tuy nhiên, ta cần viết code để tránh boxing và unboxing không cần thiết.

Autoboxing and Unboxing in Java | Guide to How does it Work Internally?
image copy từ https://www.educba.com/autoboxing-and-unboxing-in-java/

Fix

//Kiểm tra check box đã được check hay chưa
boolean isSelected = driver.findElement(By.id("isAgeSelected")).isSelected();

//Nếu chưa được check thì click vào ô check box đó
if(!isSelected) {
   driver.findElement(By.id("isAgeSelected")).click();
}
5 1 vote
Đánh giá challenge
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments