Студия Katalon не нашла тег svg для создания объекта - PullRequest
0 голосов
/ 26 мая 2018

Я пытаюсь создать объект для перетаскивания, но мне не повезло создать объект для изображения, вложенного в тег svg.Может ли Katalon найти теги SVG?

Я могу найти изображения в моем веб-приложении, но не в том случае, если оно вложено в тег svg.

<svg class="enyo-svg image" id="application_mainView_FileViewerPanel_control16_projectView1_Frame"
 preserveAspectRatio="none" version="1.1"xmlns="http://www.w3.org/2000/svg"
 xmlns:xlink="http://www.w3.org/1999/xlink" style="width: 532.7px; height: 355.13px;">

<image id="application_mainView_FileViewerPanel_control16_projectView1_Image" 
xlink:href="assets/images/projects/centroCivico.svg" x="0" y="0" 
width="100%" height="100%" preserveAspectRatio="xMidYMid meet" style=""></image></svg>

1 Ответ

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

Это обсуждение на github: https://github.com/kazurayam/KatalonDiscussion4977.

Для базового доступного приложения здесь , HTML-код элемента SVG, который мы пытаемся получить, равен

<html>
<body>
  <div id="hs-component">
    <div class="container">
      <div id="wrap">
        ...
        <div class="... demo">
          ...
          <div class="chart-container">
            <div id="container">
              <div id="highcharts-0x1te9k-0">
                <svg xmlns="http://http://www.w3.org/2000/svg" ...>
                  ...
                  <text class="highcharts-title">
                    <tspan>Solar Employment Growth by Sector, 2010-2016</tspan>
                  </text>
                  ...
                </svg>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</body>
</html>

Следующий селектор XPath не работал:

//div[@id="container"]/div/svg

при выдаче предупреждением Katalon

com.kms.katalon.core.webui.exception.WebElementNotFoundException: Web element with id: 'Object Repository/Page_Basic line/svg_namespace-ignorant' located by 'By.xpath: //div[@id="container"]/div/svg' not found

XPath должен быть с учетом пространства имен.

Узел svg с Namespace-uri http://www.w3.org/2000/svg может быть выбран следующим XPath:

//div[@id="container"]/div/*[namespace-uri() = "http://www.w3.org/2000/svg" and local-name()="svg"]

Однако целевой документ имеет только один узелс именем "svg", так что вы можете ослабить предикат, опуская условие namespace-uri () = "...".Также работает следующее выражение XPath:

//div[@id="container"]/div/*[local-name()="svg"]

Наконец, вы можете выбрать текстовый узел SVG следующим выражением XPath:

//div[@id="container"]/div/*[local-name()="svg"]/*[local-name()="text" and @class="highcharts-title"]

Пожалуйста, посмотрите,это помогает.

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