2014-05-13 23 views
13

Tôi đang sử dụng Selenium WebDriver và thước đo góc để chạy thử nghiệm e2e trên dự án góc cạnh của tôi. Giả sử tôi có một phần tử như:Thước đo góc - Cách xác định phần tử theo thuộc tính tùy chỉnh (không phải HTML)?

<div my-directive my-unique-id="abc123"></div> 

Cách tìm phần tử ở trên. Tôi đã thử với element(by.css('div[my-unique-id="abc123"]'));, nhưng nó cung cấp một NoSuchElementError.

Nếu tôi thử với HTML thuộc tính như thế nào, ví dụ, tôi muốn xác định vị trí:

<a title="myTitle" href="">Click me</a> 

tôi đã có thể xác định vị trí các yếu tố một cách chính xác bằng element(by.css('a[title="myTitle"]'))

Làm thế nào để xác định vị trí nguyên tố với các thuộc tính tùy chỉnh , nếu nó không có bất kỳ thuộc tính HTML chuẩn nào?

+0

Cú pháp là chính xác. Bạn có chỉ thị hiển thị dưới dạng div với thuộc tính my-unique-id = "abc123" không? Kiểm tra phần tử được hiển thị trong trình duyệt bằng cách sử dụng các công cụ của nhà phát triển và thử nghiệm nó với $ ('your-css-selector'). Nó sẽ làm việc theo cùng một cách trong thước đo góc. –

+0

Đồng ý với @AndresD, nguyên nhân có khả năng nhất cho việc này là chỉ thị của bạn thay thế phần tử hiện tại được xác định bằng mẫu riêng của nó. Kiểm tra phần tử trong devtools để đảm bảo bạn có bộ chọn CSS phù hợp. –

Trả lời

18

Cố gắng sử dụng xpath:

element(by.xpath('//div[@my-unique-id="abc123"]')) 

hoặc chỉ bởi thuộc tính

element(by.xpath('//div[@my-unique-id]')) 
+0

Thực sự cảm ơn vì điều này! –

3

hãy thử sử dụng:

element(by.css('[my-unique-id="abc123"]')) 

nó dễ dàng hơn và dễ đọc hơn so xpath đối với trường hợp đơn giản.

thông tin thêm về cú pháp xpath và khi nào hữu ích: http://www.w3schools.com/xml/xml_xpath.asp

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