<span _ngcontent-c77="" class="status-label success" tooltipcontainer="body" tooltipheader="Error" tooltipmode="click" tooltipposition="top" data-test-id="status"> online </span>
在 xpath 中,我可以通过以下方式找到此元素
//*[@data-test-id="status" and text()=" online "]
但是我不明白如何使用css选择器找到包含文本的元素。请帮帮我。
你不能用css_selector
来做到这一点,xpath
这是通过文本定位的唯一方法。有find_element_by_link_text
,但仅适用于<a>
标签,并且没有其他属性。
你不能,因为Selenium支持CSS2,而contains()
是CSS3。您可以在此处找到详细信息
您将无法使用 css 选择器找到元素,即innerText
contains('string')
.您可以在selenium.common.exceptions.InvalidSelectorException中找到带有"span:contains('string'("的详细讨论。
要查找元素,您可以使用以下任一定位器策略:
CSS_SELECTOR
1:span.status-label.success[tooltipcontainer='body'][tooltipheader='Error']
CSS_SELECTOR
2:span[data-test-id='status'][tooltipcontainer='body'][tooltipheader='Error']
这是不可能的。
但我认为你可以使用"数据——">
将内容从您的跨度复制到数据:数据文本="在线">
例如:
<span _ngcontent-c77="" data-text="online" class="status-label success" tooltipcontainer="body" tooltipheader="Error" tooltipmode="click" tooltipposition="top" data-test-id="status"> online </span>
和 CSS:
/* Select every cell containing "Online" */
span[data-text*="online"] {
color: green;
}