Hướng dẫn find all elements selenium python - tìm tất cả các yếu tố selen python
Có nhiều chiến lược khác nhau để xác định vị trí các yếu tố trong một trang. Bạn có thể sử dụng cái thích hợp nhất cho trường hợp của bạn. Selenium cung cấp phương pháp sau để định vị các phần tử trong một trang: Show
Để tìm nhiều phần tử (các phương thức này sẽ trả về danh sách):
Ví dụ sử dụng: from selenium.webdriver.common.by import By driver.find_element(By.XPATH, '//button[text()="Some text"]') driver.find_elements(By.XPATH, '//button') Các thuộc tính có sẵn cho theo lớp được sử dụng để định vị các thành phần trên một trang. Đây là các thuộc tính có sẵn cho lớp học: ID = "id" NAME = "name" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEXT = "partial link text" TAG_NAME = "tag name" CLASS_NAME = "class name" CSS_SELECTOR = "css selector" Lớp ‘BY được sử dụng để chỉ định thuộc tính nào được sử dụng để định vị các phần tử trên một trang. Đây là những cách khác nhau, các thuộc tính được sử dụng để định vị các phần tử trên một trang: find_element(By.ID, "id") find_element(By.NAME, "name") find_element(By.XPATH, "xpath") find_element(By.LINK_TEXT, "link text") find_element(By.PARTIAL_LINK_TEXT, "partial link text") find_element(By.TAG_NAME, "tag name") find_element(By.CLASS_NAME, "class name") find_element(By.CSS_SELECTOR, "css selector") Nếu bạn muốn định vị một số phần tử có cùng thuộc tính, hãy thay thế Find_element bằng Find_elements. 4.1. Định vị bởi id¶Sử dụng điều này khi bạn biết thuộc tính ID của một phần tử. Với chiến lược này, phần tử đầu tiên với thuộc tính ID phù hợp sẽ được trả về. Nếu không có phần tử nào có thuộc tính ID phù hợp, find_element(By.ID, "id") find_element(By.NAME, "name") find_element(By.XPATH, "xpath") find_element(By.LINK_TEXT, "link text") find_element(By.PARTIAL_LINK_TEXT, "partial link text") find_element(By.TAG_NAME, "tag name") find_element(By.CLASS_NAME, "class name") find_element(By.CSS_SELECTOR, "css selector")0 sẽ được nâng lên. Chẳng hạn, hãy xem xét nguồn trang này: <html> <body> <form id="loginForm"> <input name="username" type="text" /> <input name="password" type="password" /> <input name="continue" type="submit" value="Login" /> form> body> html> Phần tử biểu mẫu có thể được định vị như thế này: login_form = driver.find_element(By.ID, 'loginForm') 4.2. Định vị theo tên thánhSử dụng điều này khi bạn biết thuộc tính tên của một phần tử. Với chiến lược này, phần tử đầu tiên với thuộc tính tên phù hợp sẽ được trả về. Nếu không có phần tử nào có thuộc tính tên phù hợp, find_element(By.ID, "id") find_element(By.NAME, "name") find_element(By.XPATH, "xpath") find_element(By.LINK_TEXT, "link text") find_element(By.PARTIAL_LINK_TEXT, "partial link text") find_element(By.TAG_NAME, "tag name") find_element(By.CLASS_NAME, "class name") find_element(By.CSS_SELECTOR, "css selector")0 sẽ được nêu ra. Chẳng hạn, hãy xem xét nguồn trang này: <html> <body> <form id="loginForm"> <input name="username" type="text" /> <input name="password" type="password" /> <input name="continue" type="submit" value="Login" /> <input name="continue" type="button" value="Clear" /> form> body> html> Phần tử biểu mẫu có thể được định vị như thế này: username = driver.find_element(By.NAME, 'username') password = driver.find_element(By.NAME, 'password') 4.2. Định vị theo tên thánh continue = driver.find_element(By.NAME, 'continue') Sử dụng điều này khi bạn biết thuộc tính tên của một phần tử. Với chiến lược này, phần tử đầu tiên với thuộc tính tên phù hợp sẽ được trả về. Nếu không có phần tử nào có thuộc tính tên phù hợp, find_element(By.ID, "id") find_element(By.NAME, "name") find_element(By.XPATH, "xpath") find_element(By.LINK_TEXT, "link text") find_element(By.PARTIAL_LINK_TEXT, "partial link text") find_element(By.TAG_NAME, "tag name") find_element(By.CLASS_NAME, "class name") find_element(By.CSS_SELECTOR, "css selector") 0 sẽ được nêu ra.Các phần tử tên người dùng và mật khẩu có thể được định vị như thế này: Điều này sẽ cung cấp cho nút Đăng nhập của Nhật Bản khi nó xảy ra trước nút Xóa Clear Clear: 4.3. Định vị bởi xpath¶ Chẳng hạn, hãy xem xét nguồn trang này: <html> <body> <form id="loginForm"> <input name="username" type="text" /> <input name="password" type="password" /> <input name="continue" type="submit" value="Login" /> <input name="continue" type="button" value="Clear" /> form> body> html> Phần tử biểu mẫu có thể được định vị như thế này: login_form = driver.find_element(By.XPATH, "/html/body/form[1]") login_form = driver.find_element(By.XPATH, "//form[1]") login_form = driver.find_element(By.XPATH, "//form[@id='loginForm']")
Điều này sẽ cung cấp cho nút Đăng nhập của Nhật Bản khi nó xảy ra trước nút Xóa Clear Clear: ID = "id" NAME = "name" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEXT = "partial link text" TAG_NAME = "tag name" CLASS_NAME = "class name" CSS_SELECTOR = "css selector"0
Xpath tuyệt đối chứa vị trí của tất cả các phần tử từ gốc (HTML) và kết quả là có khả năng không thành công chỉ với sự điều chỉnh nhỏ nhất cho ứng dụng. Bằng cách tìm một phần tử gần đó với thuộc tính ID hoặc tên (lý tưởng là phần tử cha), bạn có thể xác định vị trí phần tử đích của mình dựa trên mối quan hệ. Điều này ít có khả năng thay đổi và có thể làm cho các bài kiểm tra của bạn mạnh mẽ hơn. ID = "id" NAME = "name" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEXT = "partial link text" TAG_NAME = "tag name" CLASS_NAME = "class name" CSS_SELECTOR = "css selector"1
Phần tử biểu mẫu đầu tiên trong HTML
Đầu tiên đầu vào phần tử con của phần tử biểu mẫu với ID thuộc tính được đặt thành LoginForm
Đầu vào với tên thuộc tính được đặt để tiếp tục và loại thuộc tính được đặt thành nútPhần tử con đầu vào thứ tư của phần tử biểu mẫu với ID thuộc tính được đặt thành LoginForm Chẳng hạn, hãy xem xét nguồn trang này: ID = "id" NAME = "name" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEXT = "partial link text" TAG_NAME = "tag name" CLASS_NAME = "class name" CSS_SELECTOR = "css selector"2 Phần tử biểu mẫu có thể được định vị như thế này: ID = "id" NAME = "name" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEXT = "partial link text" TAG_NAME = "tag name" CLASS_NAME = "class name" CSS_SELECTOR = "css selector"3 4.2. Định vị theo tên thánhSử dụng điều này khi bạn biết thuộc tính tên của một phần tử. Với chiến lược này, phần tử đầu tiên với thuộc tính tên phù hợp sẽ được trả về. Nếu không có phần tử nào có thuộc tính tên phù hợp, find_element(By.ID, "id") find_element(By.NAME, "name") find_element(By.XPATH, "xpath") find_element(By.LINK_TEXT, "link text") find_element(By.PARTIAL_LINK_TEXT, "partial link text") find_element(By.TAG_NAME, "tag name") find_element(By.CLASS_NAME, "class name") find_element(By.CSS_SELECTOR, "css selector")0 sẽ được nêu ra. Chẳng hạn, hãy xem xét nguồn trang này: ID = "id" NAME = "name" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEXT = "partial link text" TAG_NAME = "tag name" CLASS_NAME = "class name" CSS_SELECTOR = "css selector"4 Phần tử biểu mẫu có thể được định vị như thế này: ID = "id" NAME = "name" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEXT = "partial link text" TAG_NAME = "tag name" CLASS_NAME = "class name" CSS_SELECTOR = "css selector"5 4.2. Định vị theo tên thánhSử dụng điều này khi bạn muốn định vị một phần tử theo tên lớp. Với chiến lược này, phần tử đầu tiên với thuộc tính tên lớp phù hợp sẽ được trả về. Nếu không có phần tử nào có thuộc tính tên lớp phù hợp, find_element(By.ID, "id") find_element(By.NAME, "name") find_element(By.XPATH, "xpath") find_element(By.LINK_TEXT, "link text") find_element(By.PARTIAL_LINK_TEXT, "partial link text") find_element(By.TAG_NAME, "tag name") find_element(By.CLASS_NAME, "class name") find_element(By.CSS_SELECTOR, "css selector")0 sẽ được nêu ra. Chẳng hạn, hãy xem xét nguồn trang này: ID = "id" NAME = "name" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEXT = "partial link text" TAG_NAME = "tag name" CLASS_NAME = "class name" CSS_SELECTOR = "css selector"6 Phần tử P Pi có thể được định vị như thế này: ID = "id" NAME = "name" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEXT = "partial link text" TAG_NAME = "tag name" CLASS_NAME = "class name" CSS_SELECTOR = "css selector"7 4.7. Định vị các yếu tố của CSS Selectors¶Sử dụng điều này khi bạn muốn định vị một phần tử bằng cú pháp chọn CSS. Với chiến lược này, phần tử đầu tiên phù hợp với bộ chọn CSS đã cho sẽ được trả về. Nếu không có phần tử nào khớp với bộ chọn CSS được cung cấp, find_element(By.ID, "id") find_element(By.NAME, "name") find_element(By.XPATH, "xpath") find_element(By.LINK_TEXT, "link text") find_element(By.PARTIAL_LINK_TEXT, "partial link text") find_element(By.TAG_NAME, "tag name") find_element(By.CLASS_NAME, "class name") find_element(By.CSS_SELECTOR, "css selector")0 sẽ được nâng lên. Chẳng hạn, hãy xem xét nguồn trang này: ID = "id" NAME = "name" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEXT = "partial link text" TAG_NAME = "tag name" CLASS_NAME = "class name" CSS_SELECTOR = "css selector"6 Phần tử P Pi có thể được định vị như thế này: ID = "id" NAME = "name" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEXT = "partial link text" TAG_NAME = "tag name" CLASS_NAME = "class name" CSS_SELECTOR = "css selector"9 4.7. Định vị các yếu tố của CSS Selectors¶ Làm thế nào để bạn tìm thấy tất cả các yếu tố trong selen?Tìm các yếu tố trong Selenium WebDriver: Chiến lược/ loại định vị định vị.. ClassName.. TagName.. Liên kết văn bản/văn bản liên kết một phần .. Bộ chọn CSS .. Bộ chọn XPath .. Làm thế nào để tôi tìm thấy XPath của tất cả các yếu tố trong selen?Làm thế nào để tìm các yếu tố của XPath trong selen: ví dụ.. Chuyển đến tab Tên đầu tiên và nhấp chuột phải >> Kiểm tra .. Khi kiểm tra phần tử web, nó sẽ hiển thị thẻ đầu vào và các thuộc tính như lớp và id .. Sử dụng ID và các thuộc tính này để xây dựng XPath, lần lượt, sẽ định vị trường tên đầu tiên .. Làm thế nào để bạn tìm thấy nhiều yếu tố trong selen?Lệnh Findelements () trong WebDriver có thể được sử dụng để tìm nhiều hơn một phần tử web và lưu chúng vào một danh sách.Để thêm giá trị hơn vào câu trả lời:> Nếu giá trị được cung cấp có khả năng định vị một phần tử duy nhất, chúng ta có thể sử dụng lệnh FindEuity () và lưu chúng vào một biến của WebEuity.. To add more value to the answer: > If the provided value has the possibility to locate a single element, we can use findElement() command and save them into a variable of WebElement.
Tôi có thể tìm phần tử của lớp Selenium Python không?Phương thức lớp ().Phương pháp này cho phép xác định vị trí một phần tử bằng cách tham chiếu tên lớp của nó.Phương thức Lớp () được tìm thấy bên trong lớp của thư viện JavaScript Selenium WebDriver.Lớp cũng chứa các phương pháp thay thế khác để định vị các yếu tố.This method makes it possible to locate an element by referencing its class name. The class() method is found inside the By class of the Selenium WebDriver JavaScript library. The class also contains other alternative methods for locating elements. |