Làm thế nào để lấy thuộc tính của nguyên tố từ Selenium?


86

Tôi đang làm việc với Selenium bằng Python. Tôi muốn lấy thuộc tính .val()của một <select>phần tử và kiểm tra xem nó có đúng như những gì tôi mong đợi hay không.

Đây là mã của tôi:

def test_chart_renders_from_url(self):
    url = 'http://localhost:8000/analyse/'
    self.browser.get(url)
    org = driver.find_element_by_id('org')
    # Find the value of org?

Tôi có thể làm cái này như thế nào? Các tài liệu Selenium dường như có nhiều thứ về việc lựa chọn các phần tử nhưng không có gì về các thuộc tính.


2
selenium-python-docs, 7.11 get_attribute(name) có thể thực hiện công việc, mặc dù tôi không nghĩ rằng mình đã thực sự sử dụng nó. Cho nó một shot!
Abd Azrad

Câu trả lời:


132

Bạn có thể đang tìm kiếm get_attribute(). Một ví dụ được hiển thị ở đây cũng

def test_chart_renders_from_url(self):
    url = 'http://localhost:8000/analyse/'
    self.browser.get(url)
    org = driver.find_element_by_id('org')
    # Find the value of org?
    val = org.get_attribute("attribute name")

49

Python

element.get_attribute("attribute name")

Java

element.getAttribute("attribute name")

Ruby

element.attribute("attribute name")

C #

element.GetAttribute("attribute name");

7

Vì các Ứng dụng Web được phát triển gần đây đang sử dụng JavaScript , jQuery , AngularJS , ReactJS , v.v., có khả năng để truy xuất thuộc tính của một phần tử thông qua Selenium, bạn phải tạo ra WebDriverWait để đồng bộ hóa phiên bản WebDriver với Máy khách web bị trễ tức là Trình duyệt web trước đó cố gắng truy xuất bất kỳ thuộc tính nào.

Vài ví dụ:

  • Python:

    • Để lấy bất kỳ hình thức thuộc tính một thể nhìn thấy yếu tố (ví dụ như <h1>thẻ), bạn cần phải sử dụng expected_conditions như visibility_of_element_located(locator)như sau:

      attribute_value = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.ID, "org"))).get_attribute("attribute_name")
      
    • Để lấy bất kỳ hình thức thuộc tính một tương tác yếu tố (ví dụ như <input>thẻ), bạn cần phải sử dụng expected_conditions như element_to_be_clickable(locator)như sau:

      attribute_value = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "org"))).get_attribute("attribute_name")
      

Thuộc tính HTML

Dưới đây là danh sách một số thuộc tính thường được sử dụng trong HTML

Thuộc tính HTML

Lưu ý : Danh sách đầy đủ tất cả các thuộc tính cho mỗi phần tử HTML, được liệt kê trong: Tham chiếu thuộc tính HTML

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.