Проверить цвет заливки элемента под SVG - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь проверить цвет заливки нескольких элементов на странице, которые находятся под SVG. Относительный Xpath этих 7 элементов одинаков.

// * [@ ид = "svg_health-государственного успеха"] / путь

HTML

<div class="v-object-modifiers hide" xpath="1"> </div>
<svg role="img" class="c-icon c-icon-health-state-success" xpath="1"><use 
xlink:href="#svg_health-state-success"></use></svg>
<use xlink:href="#svg_health-state-success"></use>
<svg id="svg_health-state-success" viewBox="0 0 62.5 62.5" width="100%" 
height="100%"><path style="fill:#00a651" d="M0 0v62.5h62.5V0H0zm25.7 
48.2L9.5 32l8.6-8.6 7.8 8.4 20.9-17.4 6.2 6.4-27.3 27.4z"></path></svg>
<path style="fill:#00a651" d="M0 0v62.5h62.5V0H0zm25.7 48.2L9.5 32l8.6-8.6 
7.8 8.4 20.9-17.4 6.2 6.4-27.3 27.4z"></path>
</svg>
</use>
</svg>
</div>

Я попытался использовать нижеприведенное в моем скрипте, он не работает

String XPATHONE = "//*[name()='svg']//*[name()='path' and @fill='#00a651' and position()=2]";
WebElement svgObj = driver.findElement(By.xpath(XPATHONE));
Actions actionBuilder = new Actions(driver);
actionBuilder.click(svgObj).build().perform();

1 Ответ

0 голосов
/ 16 ноября 2018

fill - это не атрибут элемента path, а его свойство стиля CSS , поэтому вы не можете использовать синтаксис @fill. Попробуйте ниже XPath:

//*[name()='svg']//*[name()='path' and contains(@style, 'fill="#00a651"')]

Также я не уверен в предикате position()=2, так как не похоже, что у узла path есть какие-либо братья (пожалуйста, обновите образец исходного кода HTML должным образом, если на самом деле есть братья и сестры)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...