如何通过 css 选择器查找元素 女巫 包含属性和文本


<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 选择器找到元素,即innerTextcontains('string').您可以在selenium.common.exceptions.InvalidSelectorException中找到带有"span:contains('string'("的详细讨论。

要查找元素,您可以使用以下任一定位器策略:

  • CSS_SELECTOR1:

    span.status-label.success[tooltipcontainer='body'][tooltipheader='Error']
    
  • CSS_SELECTOR2:

    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;
}

最新更新