Sử dụng phiên bản Python của Selenium, bạn có thể nhấp vào một số phần tử trong DOM và chỉ định tọa độ nơi bạn muốn nhấp vào không? Phiên bản Java có phương thức clickAt
, thực sự thực hiện chính xác những gì tôi đang tìm kiếm, nhưng không thể tìm thấy tương đương trong Python.Selenium - Nhấp vào vị trí nhất định
Trả lời
Tôi đã không trực tiếp sử dụng phương pháp này, nhưng nhìn qua mã nguồn của selenium.py
Tôi đã tìm thấy những phương pháp sau đây mà hình như họ muốn làm những gì bạn muốn - Họ tìm đến quấn clickAt
:
def click_at(self,locator,coordString):
"""
Clicks on a link, button, checkbox or radio button. If the click action
causes a new page to load (like a link usually does), call
waitForPageToLoad.
'locator' is an element locator
'coordString' is specifies the x,y position (i.e. - 10,20) of the mouse event relative to the element returned by the locator.
"""
self.do_command("clickAt", [locator,coordString,])
def double_click_at(self,locator,coordString):
"""
Doubleclicks on a link, button, checkbox or radio button. If the action
causes a new page to load (like a link usually does), call
waitForPageToLoad.
'locator' is an element locator
'coordString' is specifies the x,y position (i.e. - 10,20) of the mouse event relative to the element returned by the locator.
"""
self.do_command("doubleClickAt", [locator,coordString,])
Chúng xuất hiện trong đối tượng selen và đây là online API documentation của chúng.
Lý do bạn bị nhầm lẫn là clickAt
là phương thức v1 (Selenium RC) cũ.
WebDriver có khái niệm hơi khác, là 'Actions'.
Cụ thể, trình tạo 'Hành động' cho các ràng buộc Python trực tiếp here.
Ý tưởng lệnh clickAt
là nhấp vào một vị trí nhất định tương đối cho một phần tử cụ thể.
Điều tương tự cũng có thể đạt được trong WebDriver, sử dụng trình tạo 'Tác vụ'.
Hy vọng điều này updated documentation có thể hữu ích.
Điều này sẽ làm điều đó! Cụ thể là bạn cần phải sử dụng chuỗi hành động từ webdriver. Một khi bạn có một ví dụ về điều đó, bạn chỉ cần đăng ký một loạt các hành động và sau đó gọi perform()
để thực hiện chúng.
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.google.com")
el=driver.find_elements_by_xpath("//button[contains(string(), 'Lucky')]")[0]
action = webdriver.common.action_chains.ActionChains(driver)
action.move_to_element_with_offset(el, 5, 5)
action.click()
action.perform()
này sẽ di chuyển con chuột 5 pixel xuống và 5 pixel ngay từ góc trên bên trái của nút Tôi cảm thấy may mắn. Sau đó, nó sẽ click()
.
Lưu ý rằng bạn phải sử dụng perform()
. Khác không có gì sẽ xảy ra.
- 1. Selenium nhấp vào liên kết
- 2. đặt lại vị trí div dựa trên vị trí nhấp
- 3. yếu tố vị trí tuyệt đối của jquery nhấp vào
- 4. Không gian định vị CSS Selenium trong bộ định vị
- 5. Neo nhấp và giữ vị trí trang?
- 6. lxml: chèn thẻ tại một vị trí nhất định
- 7. chuỗi riêng biệt thành hai theo vị trí nhất định
- 8. PHP SimpleXML: chèn nút ở vị trí nhất định
- 9. Di chuyển màn hình đến vị trí nhất định
- 10. Excel: Vị trí nút cố định
- 11. Số lần nhấp chuột vào liên kết sai (hoặc không nhấp vào liên kết) trên một số máy nhất định
- 12. Android TableRow - Cách thêm Xem động vào một số vị trí nhất định?
- 13. Thêm văn bản trong TinyMce vào vị trí của con trỏ, nhấp vào biểu tượng
- 14. Làm cách nào tôi có thể mô phỏng nhấp chuột tại một vị trí nhất định trên màn hình?
- 15. Câu hỏi JSlider: Vị trí sau khi nhấp chuột trái
- 16. Cách thêmSubview vào vị trí?
- 17. nhấp vào lệnh trong selenium webdriver không hoạt động
- 18. Nhấp vào Xác nhận hộp thoại Selenium trong .NET
- 19. Trình điều khiển Web Selenium đợi nhấp vào phần tử?
- 20. Kindle: Nhận vị trí đọc xa nhất
- 21. Selenium 2 nhấp chuột phải
- 22. Cách nhận vị trí của một lần nhấp?
- 23. Làm thế nào để cuộn UITableView đến một vị trí nhất định?
- 24. NSTableXem cách nhấp vào bất kỳ vị trí nào trong ô để chỉnh sửa văn bản?
- 25. định vị hình nền css (vị trí phủ định?)
- 26. Nhận vị trí nhấp qua lệnh ràng buộc
- 27. Di chuyển chuột đến vị trí và nhấp chuột trái
- 28. Phương pháp tốt nhất để định vị vị trí cho dữ liệu địa lý là gì?
- 29. Tự động thêm hàng vào các vị trí dữ liệuTable
- 30. Lấy một thành phần từ JList bằng cách nhấp vào vị trí
Tuyệt vời !! Họ thuộc lớp nào? – davids
Chúng nằm trong đối tượng selen. Tôi đã thực sự chỉ tìm thấy tài liệu API của họ trực tuyến - cập nhật câu trả lời. – Ewan
Chỉ còn một câu hỏi nữa. Làm thế nào để bạn thực sự sử dụng điều này? Tôi đã từng làm việc với các đối tượng webdrivers, nhưng không bao giờ sử dụng nó – davids