Bộ chọn CSS (id chứa một phần văn bản)


91

Tôi có một câu hỏi. Tôi có các yếu tố như sau:

<a> phần tử có id = someGenerated Some: Giống nhau: 0: name

<a> phần tử có id = someGenerated Some: Giống nhau: 0: họ

<a> phần tử có id = someGenerated Some: Giống nhau: 1: name

<a> phần tử có id = someGenerated Some: Giống nhau: 1: họ

Tôi cần bộ chọn CSS để lấy tên. Vấn đề là tôi không biết làm thế nào để có được nó. Tôi đã thử a[id*='Some:Same']- nó trả về tất cả các <a>yếu tố. Sau khi tôi có thể nhận được các phần tử mà id kết thúc bằng tên. Nhưng tôi không thích ý tưởng này. Tôi nghĩ rằng nó có thể được thực hiện với một số bộ chọn khác.


Bạn có thể vui lòng thêm một số ví dụ thực tế về các <a>thẻ mà bạn muốn chọn và những thẻ bạn không muốn. Nó sẽ dễ dàng hơn để giúp xem mã thực.
andyb

Tôi không thể thêm ví dụ thực tế, bởi vì chính sách bảo mật :(
TarasLviv

Nhưng tôi có thể giải thích nó theo cách khác. Id thuộc tính chứa tiếp theo: một số nhân vật được tạo ra + một số nhân vật tĩnh +: elementIndexInTable: + tên cột trong bảng
TarasLviv

Và tiêu chí cho những người bạn muốn là gì?
Tarken

Câu trả lời:


143

Thử đi:

a[id*='Some:Same'][id$='name']

Điều này sẽ giúp bạn nhận được tất cả các aphần tử có id chứa

Một số: Giống nhau

và có id kết thúc bằng

Tên


Vâng, id * không hoạt động với tôi và nó nói rằng không thể được đánh giá cho một phần tử web. Tôi đã sử dụng nó để tìm iframe có id giống như <constant><variable><constant>tên. //driver.findElements(By.xpath("//iframe[contains(@id*,'FrameID')]")).size();nơi FrameID là phần bắt đầu. Dù sao thì, //a[contains(@id,'Some:Same') and contains(@id,'name')]đã lừa tôi. Vì vậy, +1 cho bạn đời của bạn.
anujin

2
Bạn nên xóa bộ chọn XPath khỏi câu trả lời này, nó không thêm bất cứ thứ gì và chỉ làm vẩn đục vùng nước
Liam

1
@CosminO Bạn có cần cái *tiếp theo idkhông?
cokedude 25/09/18

@cokedude toán tử * = có nghĩa là nó phải chứa ít nhất giá trị sau toán tử. Nó hoạt động cùng với điều kiện thứ hai là nó phải kết thúc bằng một cái gì đó khác bằng cách sử dụng toán tử $ = Xem điều này để biết giải thích chuyên sâu w3schools.com/css/css_attribute_selectors.asp Câu trả lời ngắn. Các * không phải là bên cạnh id, bên cạnh đó là = và nó tạo thành một nhà điều hành với ý nghĩa đặc biệt
CosminO

21
<div id='element_123_wrapper_text'>My sample DIV</div>

Toán tử ^ - So khớp các phần tử bắt đầu với giá trị đã cho

div[id^="element_123"] {

}

Toán tử $ - So khớp các phần tử kết thúc bằng giá trị đã cho

div[id$="wrapper_text"] {

}

Toán tử * - So khớp các phần tử có thuộc tính chứa giá trị nhất định

div[id*="wrapper_text"] {

}

8

Bộ chọn duy nhất mà tôi thấy là a[id$="name"](tất cả các liên kết có id hoàn thành bằng "tên") nhưng nó không hạn chế như nó cần.

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.