Chúng tôi có thể xử lý cửa sổ bật lên JavaScript bằng Selenium webdriver với sự trợ giúp của giao diện Cảnh báo. Cảnh báo là cửa sổ bật lên chuyển trọng tâm từ trang web chính sang văn bản cảnh báo xuất hiện trên trang
Theo mặc định, trình điều khiển web có tiêu điểm trên trang chính, để truy cập cảnh báo, chúng tôi phải chuyển tiêu điểm trình điều khiển từ trang chính sang hộp cảnh báo một cách rõ ràng. Các cảnh báo có thể có hai loại - dựa trên web và dựa trên cửa sổ. Cửa sổ bật lên JavaScript là các cảnh báo dựa trên web
Công tắcTo[]. phương thức alert[] được sử dụng để chuyển tiêu điểm trình điều khiển sang cảnh báo. Khi tiêu điểm của trình điều khiển được thay đổi, chúng ta có thể lấy văn bản của cửa sổ bật lên với sự trợ giúp của phương thức switchTo[]. báo động[]. getText[]. Cuối cùng, chúng ta sẽ sử dụng switchTo[]. báo động[]. accept[] để chấp nhận cảnh báo và switchTo[]. báo động[]. phương thức bỏ qua [] để loại bỏ nó
Để nhập văn bản bên trong cảnh báo xác nhận, phương thức switchTo[]. báo động[]. sendKeys[] được sử dụng. Văn bản được nhập được truyền dưới dạng tham số cho phương thức này. Ngoài ra, chúng ta phải thêm tổ chức nhập khẩu. openqa. selen. Tuyên bố cảnh báo để làm việc với các cảnh báo
'Cảnh báo JS', chúng tôi nhận được cảnh báo bên dưới bằng nút OK. Khi chúng tôi nhấp vào OK, chúng tôi sẽ thấy kết quả văn bản bên dưới 'Kết quả. ’ tiêu đề như hình bên dưới.
Khi chúng tôi nhấp vào 'Xác nhận JS' . Khi chúng tôi nhấp vào OK, chúng tôi sẽ thấy kết quả văn bản bên dưới 'Kết quả. ’ tiêu đề như hình bên dưới
Khi chúng tôi nhấp vào 'Hủy', chúng tôi sẽ thấy văn bản bên dưới
Hãy để chúng tôi tự động hóa từng hành động trên 2 cảnh báo này
Trước hết chúng ta hãy kiểm tra 'Cảnh báo JS' button
So the xpath would be //button[@ title='jsAlert[]']
Đoạn mã trông như dưới đây
Chạy tập lệnh, quan sát xem có thấy cảnh báo không
Chúng ta hãy tiếp tục trường hợp sử dụng này bởi performing below operations:
i] chuyển sang cảnh báo
ii] lấy văn bản trên trang này ‘I am a JS Alert’
iii] click OK to close the alert
Đoạn mã dưới đây sẽ làm điều cần thiết
Chạy tập lệnh, quan sát xem bảng điều khiển in văn bản mong muốn
Tiếp theo chúng ta hãy kiểm tra nút 'Xác nhận JS'
Mã bên dưới sẽ hiển thị cảnh báo 'Xác nhận JS'
Chạy tập lệnh, chú ý văn bản trên bàn điều khiển
Xử lý cửa sổ bật lên JStrong Selenium 4
Khi chúng tôi nhấp vào 'JS Prompt' popup, we get the below popup with on OK and Cancel button plus the text field where we can enter some text. When we nhập một số văn bản và nhấp vào OK,< . ’ tiêu đề we see the text that we had entered under ‘Result:’ header
Nếu chúng tôi nhấp vào Hủy, chúng tôi sẽ thấy văn bản bên dưới
Hãy để chúng tôi tự động hóa các hành động trên cửa sổ bật lên này
Đầu tiên chúng ta hãy kiểm tra ‘JS Prompt’
Xem bên dưới. Trên dòng số 32, chúng tôi đang nhập một số văn bản vào trường văn bản mà chúng tôi thấy trên cửa sổ bật lên
Chạy tập lệnh, bên dưới là nhật ký bảng điều khiển
Chúng ta hãy mở rộng trường hợp sử dụng này một chút.
Khi chúng tôi nhập một số văn bản như được hiển thị ở trên và nhấp vào Ok, chúng tôi sẽ thấy văn bản mà chúng tôi đã nhập dưới tiêu đề 'Kết quả' như hình bên dưới
WebDriver cung cấp API để làm việc với ba loại thông báo bật lên gốc do JavaScript cung cấp. Các cửa sổ bật lên này được trình duyệt tạo kiểu và cung cấp khả năng tùy chỉnh hạn chế
cảnh báo
Đơn giản nhất trong số này được gọi là cảnh báo, hiển thị thông báo tùy chỉnh và một nút duy nhất loại bỏ cảnh báo, được gắn nhãn trong hầu hết các trình duyệt là OK. Nó cũng có thể bị loại bỏ trong hầu hết các trình duyệt bằng cách nhấn nút đóng, nhưng thao tác này sẽ luôn hoạt động giống như nút OK. Xem một ví dụ cảnh báo
WebDriver có thể lấy văn bản từ cửa sổ bật lên và chấp nhận hoặc loại bỏ các cảnh báo này
//Click the link to activate the alert
driver.findElement[By.linkText["See an example alert"]].click[];
//Wait for the alert to be displayed and store it in a variable
Alert alert = wait.until[ExpectedConditions.alertIsPresent[]];
//Store the alert text in a variable
String text = alert.getText[];
//Press the OK button
alert.accept[];
# Click the link to activate the alert
driver.find_element[By.LINK_TEXT, "See an example alert"].click[]
# Wait for the alert to be displayed and store it in a variable
alert = wait.until[expected_conditions.alert_is_present[]]
# Store the alert text in a variable
text = alert.text
# Press the OK button
alert.accept[]
//Click the link to activate the alert
driver.FindElement[By.LinkText["See an example alert"]].Click[];
//Wait for the alert to be displayed and store it in a variable
IAlert alert = wait.Until[ExpectedConditions.AlertIsPresent[]];
//Store the alert text in a variable
string text = alert.Text;
//Press the OK button
alert.Accept[];
# Click the link to activate the alert
driver.find_element[:link_text, 'See an example alert'].click
# Store the alert reference in a variable
alert = driver.switch_to.alert
# Store the alert text in a variable
alert_text = alert.text
# Press on OK button
alert.accept
//Click the link to activate the alert
await driver.findElement[By.linkText['See an example alert']].click[];
// Wait for the alert to be displayed
await driver.wait[until.alertIsPresent[]];
// Store the alert in a variable
let alert = await driver.switchTo[].alert[];
//Store the alert text in a variable
let alertText = await alert.getText[];
//Press the OK button
await alert.accept[];
// Note: To use await, the above code should be inside an async function
//Click the link to activate the alert
driver.findElement[By.linkText["See an example alert"]].click[]
//Wait for the alert to be displayed and store it in a variable
val alert = wait.until[ExpectedConditions.alertIsPresent[]]
//Store the alert text in a variable
val text = alert.getText[]
//Press the OK button
alert.accept[]
Xác nhận
Một hộp xác nhận tương tự như một cảnh báo, ngoại trừ người dùng cũng có thể chọn hủy tin nhắn. Xem một mẫu xác nhận
Ví dụ này cũng cho thấy một cách tiếp cận khác để lưu trữ cảnh báo
//Click the link to activate the alert
driver.findElement[By.linkText["See a sample confirm"]].click[];
//Wait for the alert to be displayed
wait.until[ExpectedConditions.alertIsPresent[]];
//Store the alert in a variable
Alert alert = driver.switchTo[].alert[];
//Store the alert in a variable for reuse
String text = alert.getText[];
//Press the Cancel button
alert.dismiss[];
# Click the link to activate the alert
driver.find_element[By.LINK_TEXT, "See a sample confirm"].click[]
# Wait for the alert to be displayed
wait.until[expected_conditions.alert_is_present[]]
# Store the alert in a variable for reuse
alert = driver.switch_to.alert
# Store the alert text in a variable
text = alert.text
# Press the Cancel button
alert.dismiss[]
________số 8
# Click the link to activate the alert
driver.find_element[:link_text, 'See a sample confirm'].click
# Store the alert reference in a variable
alert = driver.switch_to.alert
# Store the alert text in a variable
alert_text = alert.text
# Press on Cancel button
alert.dismiss
# Click the link to activate the alert
driver.find_element[By.LINK_TEXT, "See an example alert"].click[]
# Wait for the alert to be displayed and store it in a variable
alert = wait.until[expected_conditions.alert_is_present[]]
# Store the alert text in a variable
text = alert.text
# Press the OK button
alert.accept[]
0# Click the link to activate the alert
driver.find_element[By.LINK_TEXT, "See an example alert"].click[]
# Wait for the alert to be displayed and store it in a variable
alert = wait.until[expected_conditions.alert_is_present[]]
# Store the alert text in a variable
text = alert.text
# Press the OK button
alert.accept[]
1Lời nhắc
Lời nhắc tương tự như hộp xác nhận, ngoại trừ chúng cũng bao gồm một kiểu nhập văn bản. Tương tự như làm việc với các phần tử biểu mẫu, bạn có thể sử dụng các phím gửi của WebDriver để điền vào phản hồi. Điều này sẽ thay thế hoàn toàn văn bản giữ chỗ. Nhấn nút hủy sẽ không gửi bất kỳ văn bản nào. Xem lời nhắc mẫu