2012-09-19 58 views
14

Tôi muốn sử dụng Ký tự đại diện trong các thuộc tính của mình. Ví dụ: đây là XPath thông thường của tôi:Sử dụng các ký tự đại diện XPath trong các thuộc tính trong Selenium WebDriver

//input[@id='activation:j_idt84:voId:1']` 

Tôi muốn thay thế số j_idt bằng ký tự đại diện vì số đó là động. Tôi đang tìm kiếm nội dung như sau:

//input[@id='activation:*:voId:1'] 

Tôi không biết cách giải quyết vấn đề đó. Ý tưởng của tôi có khả thi không?

Trả lời

24

Rất tiếc, không có ký tự đại diện chuỗi trong XPath. Tuy nhiên, bạn có thể sử dụng nhiều và starts-with() để lọc những thứ như thế này.

//input[starts-with(@id, 'activation:') and contains(@id, ':voId:1')] 

Ngoài ra, câu trả lời này có thể hữu ích quá: selenium: Is it possible to use the regexp in selenium locators

+0

nhờ, các công trình giải pháp này hoàn hảo! –

2

Bạn thể ký tự đại diện sử dụng chuỗi bằng cách sử dụng chức năng matches trong đó có sẵn trong XPath 2.0:

//input[matches(@id, 'activation:.*:voId:1')] 
+0

Cách này không hoạt động trong mã của tôi. Các giải pháp phức tạp857 hoạt động. Nhưng cảm ơn rất nhiều! –

+2

Selenium [đại biểu xpath đến trình duyệt cơ bản] (http://code.google.com/p/selenium/issues/detail?id=3009) vì vậy khi các trình duyệt triển khai chúng, nó sẽ bắt đầu hoạt động. – complex857

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