2010-09-08 62 views
5

Tôi biết rằng selen có thể sử dụng bộ định vị css.Không gian định vị CSS Selenium trong bộ định vị

Tôi biết rằng cú pháp là một cái gì đó như thế này:

xpath = // div [@ id, 'topleft') // khoảng [chứa (@ lớp, 'name')]
hoặc css = # topleft .name

Bây giờ, những gì nếu .name là như thế này: // khoảng [chứa (@ lớp, 'tên với không gian')]

Sau đó, nó sẽ thất bại ... Làm thế nào để tìm kiếm một định vị có không gian trong đó?

Cảm ơn!

EDIT Giải pháp: css = span.name.with.space tên

Trả lời

5

lớp không thể có khoảng trắng. Tuy nhiên, bạn có thể xác định nhiều lớp cho một phần tử đơn lẻ bằng cách đặt dấu cách giữa chúng. Hãy xem id and class identifiers section in the HTML spec để biết thêm.

Bạn sẽ có thể sử dụng trình định vị CSS bằng cách chỉ sử dụng một trong các lớp.

Nếu điều đó không hiệu quả, hãy kiểm tra kỹ bộ chọn CSS của bạn bằng công cụ như Firefinder for FireBug. Tôi đã có thể sử dụng Selenium-IDE với một phần tử có hai lớp. Đối với HTML

<div class="c1 c2"> 
    <span class"s1">Test</span> 
</div> 

tôi đã sử dụng bộ chọn

css=div.c1 span 
+0

Yeah. Nói điều đó với các nhà phát triển tại công ty của tôi, những người có tên lớp như sau: nút AddComment IntegrationButton. – Hannibal

+0

Tôi không nói rằng không thể có không gian. Tôi chỉ ra rằng đó không phải là tất cả một lớp. Đó là những lớp học cá nhân. Nếu bạn đang cố gắng để xác định một với một bộ chọn, chỉ cần chọn một lớp. – pnewhook

+0

Bây giờ tôi là người ngu ngốc ... Tôi không bao giờ nghĩ rằng một yếu tố có thể có nhiều lớp học? Chết tiệt ... Tôi học điều gì đó mới mỗi ngày. :) Điều đó có nghĩa là nếu tôi thấy một tên lớp như thế này: "nút Một cái gì đó nộp" ... Đó là yếu tố có nút lớp lớp học Một cái gì đó và lớp người gửi? Và nếu tôi tìm kiếm lớp nút thì bạn cũng sẽ tìm thấy lớp này? – Hannibal

-2

Với CSS nó dễ dàng hơn so với sử dụng một xpath dài:

span.class1.class2

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