【问题标题】:How do I iterate through elements in Selenium and Python?如何遍历 Selenium 和 Python 中的元素?
【发布时间】:2020-06-25 12:07:27
【问题描述】:

我试图通过遍历此 HTML 的 li 列表来获取 span 标记内的文本:

<ol class="KambiBC-event-result__score-list">
    <li class="KambiBC-event-result__match">
        <span class="KambiBC-event-result__points">1</span>
        <span class="KambiBC-event-result__points">1</span>
    </li>
</ol>

但我得到了错误

AttributeError: 'list' 对象没有属性 'find_element_by_class_name'

在我的代码上:

meci = driver.find_elements_by_class_name('KambiBC-event-result__match')

for items in meci:

 scor = meci.find_element_by_class_name('KambiBC-event-result__points')


 print (scor.text)

【问题讨论】:

    标签: python-3.x selenium


    【解决方案1】:

    您没有在循环内使用项目。你循环应该是

    meci = driver.find_elements_by_class_name('KambiBC-event-result__match')
    
    for items in meci:
        scor = items.find_element_by_class_name('KambiBC-event-result__points')
        print (scor.text)
    

    meci.find_element_by_class_name 应该是items.find_element_by_class_name

    【讨论】:

    • 好吧,我现在是不是傻了,我怎么才能只访问第二个孩子?
    【解决方案2】:

    要回答您的第二条评论,您只需在类名末尾添加“:nth-child(2)”即可。

    “KambiBC-event-result__points”类将读取“KambiBC-event-result__points:nth-child(2)”以仅访问第二个孩子。

    【讨论】:

      猜你喜欢
      • 2020-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-16
      • 1970-01-01
      • 1970-01-01
      • 2019-05-15
      • 1970-01-01
      相关资源
      最近更新 更多