如何在pythonselenium中迭代无序列表

2024-09-30 02:14:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用Selenium webdriver迭代Python中的以下元素。在

<ul class="skills-section">
  <li class="endorse-item has-endorsements " data-endorsed-item-name="Ear Surgery">
  <li class="endorse-item has-endorsements " data-endorsed-item-name="Healthcare">
  <li class="endorse-item has-endorsements " data-endorsed-item-name="Hospitals">
  <li class="endorse-item has-endorsements " data-endorsed-item-name="Surgery">
  <li class="endorse-item has-endorsements " data-endorsed-item-name="Medical Education">
  <li class="endorse-item has-endorsements " data-endorsed-item-name="Pediatrics">
  <li class="endorse-item has-endorsements " data-endorsed-item-name="Treatment">
  <li class="endorse-item has-endorsements " data-endorsed-item-name="Public Health">
  <li class="endorse-item has-endorsements " data-endorsed-item-name="Patient Safety">
  <li class="endorse-item has-endorsements " data-endorsed-item-name="Emergency Medicine">
</ul>

我试过什么?在

^{pr2}$

但问题是,它总是打印第一个元素值。元素没有递增。在


Tags: name元素dataseleniumliitemulskills
2条回答

您要做的是用class='skills-section'找到标记'ul',然后迭代子对象。在

skillsSection = a.find_element_by_xpath("//ul[contains(@class, 'skills-section')]")
for child in skillsSection.find_elements_by_xpath(".//*"):
    ...

更多详细信息请参见此答案:Selenium Python get all children elements

我最近也遇到了一个类似的问题,我只能打印列表中的第一项。我发现了一个需要多行代码的解决方案,并避免使用xpath。对于您的代码,您可能需要替换:

print skill.find_element_by_xpath("//span[contains(@class,'endorse-item-name')]/a").text  

比如说:

^{pr2}$

虽然没有xpath的一行那么优雅,但是它应该可以工作。在

相关问题 更多 >

    热门问题