首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Xpath元素的文本放到数组中

将Xpath元素的文本放到数组中
EN

Stack Overflow用户
提问于 2013-11-18 17:22:27
回答 1查看 1.5K关注 0票数 1

我正试着用硒。问题如下:

文档结构:

代码语言:javascript
复制
<div class="jsSkills oSkills">
 <a class="oTag oTagSmall oSkill" href="/contractors/skill/software-testing/" data-contractor="749244">software-testing</a>
 <a class="oTag oTagSmall oSkill" href="/contractors/skill/software-qa-testing/" data-contractor="749244">software-qa-testing</a>
 <a class="oTag oTagSmall oSkill" href="/contractors/skill/blog-writing/" data-contractor="749244">blog-writing</a>
</div>

我需要获得a的所有文本,以便排列如下:

代码语言:javascript
复制
{"software-testing", "software-qa-testing", "blog-writing"}

我试过这个:

代码语言:javascript
复制
contrSkill = driver.find_element(:xpath, "//div[contains(@class, 'jsSkills')]").text
puts contrSkill

但得到了这个:

代码语言:javascript
复制
"software-testingsoftware-qa-testingblog-writing"

请解释如何适当地制作数组。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-18 18:30:19

您应该获得所需的所有链接元素(使用find_elements)。然后,您可以遍历每个链接并将其文本收集到一个数组中(Ruby有一个collect方法来帮助实现这一点)。

代码语言:javascript
复制
# Get all of the link elements within the div
skill_links = driver.find_elements(:xpath, "//div[contains(@class, 'jsSkills')]/a")

# Create an array of the text of each link
skill_text_array = skill_links.collect(&:text)
p skill_text_array
#=> ["software-testing", "software-qa-testing", "blog-writing"]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20053844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档