【问题标题】:take text in span data icon selenium vba在跨度数据图标 selenium v​​ba 中获取文本
【发布时间】:2019-04-02 21:07:01
【问题描述】:

我想将此代码中的文本“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 搜索吗?有人可以帮我吗?

【问题讨论】:

    标签: vba selenium ms-access xpath web-scraping


    【解决方案1】:

    你的意思是这样的:

    .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'] 之前包含元素的类名。

    【讨论】:

    • 我设法用你给我的答案的第一部分解决了我的问题。不幸的是,当我插入该计数以获取最后一个元素时,该函数停止响应。谢谢。
    • 对不起,我检查了其他测试,不幸的是我没有解决。我会指出一个错误,我马上就会看到
    • 错误运行时间.....索引不包括在间隔中。需要非负值并且小于集合的大小。参数名称:索引
    • on Set lastElement = bot.FindElementsByCss("[data-icon='msg-dblcheck']")(numElements)Set lastElement = bot.FindElementsByCss("[data-icon='msg-dblcheck ']")(numElements) 我注意到计数工作正常(找到的数字在调试中突出显示)
    • 奇数。尝试 Set lastElement = bot.FindElementsByCss("[data-icon='msg-dblcheck']")(numElements-1) 作为实验。
    猜你喜欢
    • 2021-01-18
    • 2017-11-09
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多