【发布时间】:2018-10-17 09:52:20
【问题描述】:
我有几个这样的元素:
<g transform="matrix">
<image xlink:href="data:image/png" width="48">
</g>
<g transform="matrix">
<image xlink:href="specyfic" width="48">
</g>
<g transform="matrix">
<image xlink:href="specyfic" width="48">
</g>
我想选择名称中没有“specifyc”的元素。问题是有时有几个非元素,有时没有。非特定图像计数始终为 1。
由于属性名称中的“:”,我无法做到这一点。
我试过了:
public static getEventIconOnMap: ElementFinder =
element.all(by.css('image[width="48"]:not(image[xlink\\:href*="specyfic"'))).last();
【问题讨论】:
-
最好给出示例HTML,这样我们可以在本地尝试
-
因此,您要选择其中不包含作品“specyfic”的所有图像。这是正确的吗?
-
我无法为您提供完整的答案,但看看到目前为止的答案,我认为您错过了问题的关键部分。您的标记是 svg,可能嵌入在 HTML 页面中。这意味着标记是外来内容并且适用 XML 命名空间。所以在 CSS 中,这意味着使用管道字符而不是反斜杠冒号。由于声明命名空间前缀绑定看起来很难(可能是不可能的),我会尝试对所有前缀属性使用 *。所以你可以试试
image[width="48"]:not([*|href*='specyfic'])
标签: html css typescript webdriver protractor