Как получить текст из тега <svg>, который содержит текст тега - PullRequest
1 голос
/ 04 ноября 2019

Я хотел получить текст из данного тега и хотел показать на concsol. Всего 21 строк, и когда я нажимаю на него, это дает мне всплывающее окно (это не Java или всплывающее окно на основе окна), я хотел получить некоторые значения из этого всплывающего окна и хотел отобразить на консоли.

После нажатия навсплывающее окно, содержит 3 строки. Каждая строка содержит 3 тд тега. Значение первого тега td отображается, но обнаруживается сложность при извлечении значения второго тега td.

Вот код:

<td style=" "        > Manager</td>
<td style="padding-right">
    <svg  width="100%" hight="50%"  id=" ">
        <g>
            <defs....>...</defs>
            <rect....>...</rect>
            <text x="10"  y="24" fill=" " syle=" ">30%</text>
                 </g>
         <g>
            <text x="10"  y="24" fill=" "  syle=" ">70%</text>
            <text x="10"  y="24" fill=" " syle=" ">80%</text>

         </g>
    </svg>
<td>

В консоли отображается «Менеджер», но обнаружены трудностичтобы напечатать текст «30%», 70% и 80% на консоли.

Это путь, показывающий один элемент.

//div[@id='performanceMeasureDetailsModel']//div[2]//table[1]//tbody[1]//tr[1]//td[2]//* [name()='svg']//*[name()='g'][1]//*[text()='50%']

, дающий обязательный элемент, но текст может быть разным, поэтомучто будет динамический путь для этого. Точно так же хотел напечатать значение второго тега g и для всех 21 строк.

Если кто-нибудь знает, как извлечь текстовый тег, содержащий текст? Будет отличная помощь. Спасибо.

1 Ответ

1 голос
/ 04 ноября 2019

Попробуйте это ниже xpath. Это должно идентифицировать все 21 элемент.

//*[name()='svg']//*[name()='text']

Чтобы получить все элементы текста

WebDriverWait wait = new WebDriverWait(driver, 20);         
List<WebElement> Items=wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//*[name()='svg']//*[name()='text']")));
        for(int i=0;i<Items.size();i++)
        {
            System.out.println(Items.get(i).getText());

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