взять текст в span данные icon селен vba - PullRequest
0 голосов
/ 30 октября 2018

Я хотел бы взять текст "msg-dblcheck" в этом коде и вставить его в таблицу MSaccess:

<div class="_32uRw">
  <span data-icon="msg-dblcheck" class="">
    <svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 15" width="16" height="15">
      <path fill="#92A58C" d="M15.01 3.316l-.478-.372a.365.365 0 0 0-.51.063L8.666 9.879a.32.32 0 0 1-.484.033l-.358-.325a.319.319 0 0 0-.484.032l-.378.483a.418.418 0 0 0 .036.541l1.32 1.266c.143.14.361.125.484-.033l6.272-8.048a.366.366 0 0 0-.064-.512zm-4.1 0l-.478-.372a.365.365 0 0 0-.51.063L4.566 9.879a.32.32 0 0 1-.484.033L1.891 7.769a.366.366 0 0 0-.515.006l-.423.433a.364.364 0 0 0 .006.514l3.258 3.185c.143.14.361.125.484-.033l6.272-8.048a.365.365 0 0 0-.063-.51z"></path>
    </svg>
  </span>
</div>

это мой проверенный код:

spnt= bot.findElementByClassName("_32uRw").text

к сожалению, я вставляю поле "-1". Где я не прав? В выборе поля? Должен ли я искать с помощью xpath? Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 30 октября 2018

Вы имеете в виду что-то вроде:

.FindElementByCss("._32uRw span").Attribute("data-icon")

Я не знаю, сколько имен классов у вас есть до этого. Вышеприведенное совпадение будет соответствовать первому имени этого класса со следующим интервалом.

Вы можете сделать FindElementsByCSS и индексировать в возвращенную коллекцию webElements, например. .FindElementsByCss("._32uRw span")(1).Attribute("data-icon")

С учетом вышесказанного вам не нужно .Text на конце. Это вернуло бы msg-dblcheck.

Для последнего элемента с этим атрибутом:

Dim numElements As Long, lastElement As WebElement
numElements = bot.FindElementsByCss("[data-icon='msg-dblcheck']").Count
Set lastElement = bot.FindElementsByCss("[data-icon='msg-dblcheck']")(numElements-1)

Чтобы включить имя класса элемента перед изменением текста [data-icon='msg-dblcheck'] на ._32uRw [data-icon='msg-dblcheck'].

...