Tôi đang cố gắng viết một bài kiểm tra với selen bằng ngôn ngữ python cho một trang web quản lý người dùng. Trong trang này, ai đó có thể thêm vai trò cho người dùng và nếu một vai trò tồn tại trong khi thêm nó, một cảnh báo sẽ tăng lên. Tôi không biết cảnh báo có phải là cảnh báo javascript hay phần tử của trang web hay không. Tôi muốn tự động kiểm tra sự tồn tại của cảnh báo, bởi vì kiểm tra vai trò trong danh sách lãng phí thời gian và có một tải trọng rất lớn. Tôi đã thử điều này:Kiểm tra xem có cảnh báo nào đang tồn tại khi sử dụng selen với python
browser = webdriver.Firefox()
browser.get("url")
browser.find_the_element_by_id("add_button").click()
try:
alert = browser.switch_to_alert()
alert.accept()
print "alert accepted"
except:
print "no alert"
Nhưng nó không hoạt động và tôi nhận được "UnexpectedAlertPresentException". Tôi cũng đã thử điều này:
browser = webdriver.Firefox()
browser.get("url")
browser.find_the_element_by_id("add_button").click()
s = set(browser.window_handles)
s.remove(browser.current_window_handle)
browser.switch_to_window(s.pop())
Nhưng tôi cũng có ngoại lệ tương tự. Ngoài ra, tôi đã cố gắng truy cập cảnh báo bằng firebug để kiểm tra xem tôi có thể truy cập với các thuộc tính của nó hay không, nhưng nhấp chuột phải đã bị vô hiệu hóa. Tôi cần một giải pháp rất nhanh, ngay cả trong các ngôn ngữ khác. Tôi có thể hiểu cách tiếp cận này. Tôi sẽ đánh giá cao bất kỳ trợ giúp nào.
Bạn đã thử một sự chậm trễ ngắn giữa lần nhấp và switch_to_alert chưa? – Richard
chưa, cảm ơn bạn vì gợi ý này @Richard. Tôi nghĩ rằng tôi có thể sử dụng mã mà A.R. đã cho tôi –
@Richard phải có sự chậm trễ giữa 'switch_to_alert()' thành 'accept()'? Nếu không thì có thể là một vấn đề, bạn nghĩ vậy? –