2012-04-20 30 views
5

Tôi mới dùng selen và cần làm rõ một số nội dung. Tôi đã thử clickclickAndWait trong IDE, và trong khi các tài liệu tham khảo nêu rõ những gì từng có nghĩa là, khi tôi xuất trường hợp thử nghiệm để Python, nó có vẻ như cả hai đang làm điều tương tự ở đâySelenium - sự khác nhau giữa nhấp chuột và clickAndWait là gì?

driver.find_element_by_xpath("//li[@id='pa-u_8298348-bd']/a/span[2]").click() #click and wait 
driver.find_element_by_link_text("IMVironments").click() #click 

Ai đó có thể nói tôi sự khác biệt ở đây là gì?

Trả lời

4

Từ Selenium docs:

Nhiều Hành động có thể được gọi với "AndWait" hậu tố, ví dụ "clickAndWait". Hậu tố này cho Selen biết rằng hành động sẽ gây ra trình duyệt để thực hiện cuộc gọi đến máy chủ và Selenium đó cần chờ trang mới tải.

+2

Và làm thế nào để bạn nhận được điều này với ràng buộc python? – rakslice

0

Tôi không chắc đây có phải là điều python hay không nhưng dường như bạn chỉ đang gọi 'click' và không gọi 'clickAndWait'. Tôi nghĩ đây là những gì Trott đang chỉ ra. Với điều này nói rằng tôi đã nhận thấy rằng IE thường yêu cầu AndWait thường xuyên hơn một chút so với Firefox hoặc Chrome, mà dường như để đối phó với chỉ cần nhấp một chút tốt hơn (do tốc độ?). Bạn cũng có thể tạo ra 'chờ đợi' của riêng bạn trong Selenium, đó là những gì tôi thường làm trong các tình huống quan trọng (như bạn cần tương tác với một yếu tố cụ thể để bạn 'chờ' cho đến khi nó tồn tại).

EDIT: Sau khi bình luận của bạn, bây giờ tôi hiểu những gì bạn đang nói (hơi bối rối về bình luận 'clickandwait': P). Từ những gì tôi có thể nói AndWait không phải luôn luôn có sẵn cho các ràng buộc Python, tôi thấy rằng here, nhưng tôi sẽ thừa nhận nó không phải là 100% rõ ràng như nó cho thấy nếu không ở những nơi khác. Có lẽ điều này sẽ hữu ích thay thế?

wait_for_page_to_load (timeout) [nguồn]

Waits cho một trang mới để tải.

Bạn có thể sử dụng lệnh này thay vì hậu tố “AndWait”, “clickAndWait”, “selectAndWait”, “typeAndWait” v.v. (chỉ có có sẵn trong API JS).

Được đặt làm bản chỉnh sửa vì quá dài để nhận xét, xin lỗi!

+1

thực sự những gì tôi có nghĩa là khi xuất khẩu các trường hợp thử nghiệm IDE, clickAndWait và nhấp vào hành động từ IDE cả dịch sang cùng một mã trong python, mà không phải là những gì tôi đã mong đợi .. – goh

2

2 năm sau, tôi biết. Nhưng tôi đã tìm kiếm câu trả lời tương tự và tìm thấy nó.

Từ Selenium Wiki

Các AndWait thay thế luôn được sử dụng khi hành động làm cho trình duyệt để điều hướng đến một trang khác hoặc tải lại chữ cái hiện hữu.

Nói cách khác, trình quản trị web của Selenium, khi sử dụng lệnh Click(), vốn sẽ sử dụng công cụ sửa đổi "AndWait" nếu nó nhận ra tải trang.

cũng Xem Interface WebElement

trống nhấp chuột()

Bấm yếu tố này. Nếu điều này làm cho trang mới tải, phương pháp này sẽ cố gắng chặn cho đến khi trang được tải.

Các vấn đề liên quan