如何在冒号属性名称中选择具有特定字符串的NOT元素

Jer*_*zka 5 html css webdriver typescript protractor

我有几个像这样的元素:

<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>
Run Code Online (Sandbox Code Playgroud)

我想选择名称中没有'specifiedc'的元素.问题是,有时会有一些NOT元素,有时甚至没有.NON specyfic图像计数始终是一个.

由于属性名称中的':',我无法实现这一点.

我试过这个:

  public static getEventIconOnMap: ElementFinder = 
   element.all(by.css('image[width="48"]:not(image[xlink\\:href*="specyfic"'))).last();
Run Code Online (Sandbox Code Playgroud)

sco*_*ord 4

您的代码对我来说没有多大意义,也不知道如何测试它,但我认为以下代码可以工作。尝试像这样转义字符:

public static getEventIconOnMap: ElementFinder = 
   element.all(by.css('image:not([xlink\:href*=specyfic]')).last();
Run Code Online (Sandbox Code Playgroud)

这是一个有效的 CSS 选择器,因此请根据您的代码进行调整:

image:not([xlink\:href*=specyfic]) {
  // your code
}
Run Code Online (Sandbox Code Playgroud)

这是一个工作小提琴 - 它不是您使用的确切代码,但我将其编写为 css 选择器: https: //jsfiddle.net/x4gsr658/