首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从selenium中的多个类的多个元素中获取数据?

如何从selenium中的多个类的多个元素中获取数据?
EN

Stack Overflow用户
提问于 2021-05-17 09:57:19
回答 2查看 118关注 0票数 2

正如在问题中所写的,有多个h3标记和多个按钮--有些是相同的类,而有些是不同的--我想要获得带有类companyname的h3标记的文本,并且我希望获得所有带有该类btn btn-xs btn-success或该类btn btn-xs btn-danger的按钮的文本。

以下是html:

代码语言:javascript
复制
<div class="col-md-6 col-sm-9">
                    <!-- <h3>Did you mean: <a href="/trademarks/search/"></a></h3> -->

                            <div class="searchresult" style="padding-left: 20px;">
                                <!-- <table> -->
                                    <!-- <tr> -->
                                        <!-- <td width="70%"> -->
                                        <div class="row">
                                          <div class="col-sm-12">
                                            <h3 style="margin-bottom: 0; letter-spacing: 0px;" class="companyname">
                                              <a href="/trademarks/953603-susox" style="">
                                                Susox
                                              </a>
                                            </h3> 

                                            <div class="lighter" style="padding-bottom: 5px">ID: 953603</div>

                                            <p>

                                                  <button type="button" class="btn btn-xs btn-success">Registered</button>


                                            <button type="button" class="btn btn-xs btn-default">Class: 5</button>
                                            <button type="button" class="btn btn-xs btn-default">Device</button>

                                            </p>
                                        </div>

                                        <div class="col-sm-8">
                                            <ul>
                                                <li>Filed on <strong>05 September 2000</strong></li>
                                                <li>Registered in <strong>GUJARAT</strong></li>
                                                <li>Filed in IPOffice <strong>AHMEDABAD</strong></li>
                                                <li>Published in Journal #9999</li>
                                            </ul>
                                        </div>
                                        <div class="col-sm-4 text-center">
                                              <div style="padding: 0px 0 10px 0; border: solid 0px #CCC;">
                                                <img class="img-responsive" alt="Susox" style="max-height: 100px; max-width: 100%" src="https://qcimages.sgp1.digitaloceanspaces.com/store/trademark/7081340/imageshrine/small-1ec5cfa763b881ffa0642b7f6ef802bf.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&amp;X-Amz-Credential=GQGLOPQAZ7XLVOTEXYZH%2F20210517%2Fsgp1%2Fs3%2Faws4_request&amp;X-Amz-Date=20210517T094210Z&amp;X-Amz-Expires=900&amp;X-Amz-SignedHeaders=host&amp;X-Amz-Signature=fda1ed68cc66088d64d8cf166341905a61ccc1fac868781b75c8ab78828c587f">
                                              </div>
                                        </div>
                                      </div>
                            </div>
                            <div class="searchresult" style="padding-left: 20px;">
                                <!-- <table> -->
                                    <!-- <tr> -->
                                        <!-- <td width="70%"> -->
                                        <div class="row">
                                          <div class="col-sm-12">
                                            <h3 style="margin-bottom: 0; letter-spacing: 0px;" class="companyname">
                                              <a href="/trademarks/1190452-susox-t2" style="">
                                                Susox T2
                                              </a>
                                            </h3> 

                                            <div class="lighter" style="padding-bottom: 5px">ID: 1190452</div>

                                            <p>

                                                  <button type="button" class="btn btn-xs btn-success">Abandoned</button>


                                            <button type="button" class="btn btn-xs btn-default">Class: 5</button>
                                            <button type="button" class="btn btn-xs btn-default">Word</button>

                                            </p>
                                        </div>

                                        <div class="col-sm-8">
                                            <ul>
                                                
                                                <li>Registered in <strong>HARYANA</strong></li>
                                                <li>Filed in IPOffice <strong>DELHI</strong></li>
                                                
                                            </ul>
                                        </div>
                                        <div class="col-sm-4 text-center">
                                        </div>
                                      </div>
                            </div>
                            <div class="searchresult" style="padding-left: 20px;">
                                <!-- <table> -->
                                    <!-- <tr> -->
                                        <!-- <td width="70%"> -->
                                        <div class="row">
                                          <div class="col-sm-12">
                                            <h3 style="margin-bottom: 0; letter-spacing: 0px;" class="companyname">
                                              <a href="/trademarks/1190450-susox-200" style="">
                                                Susox 200
                                              </a>
                                            </h3> 

                                            <div class="lighter" style="padding-bottom: 5px">ID: 1190450</div>

                                            <p>

                                                  <button type="button" class="btn btn-xs btn-success">Abandoned</button>


                                            <button type="button" class="btn btn-xs btn-default">Class: 5</button>
                                            <button type="button" class="btn btn-xs btn-default">Word</button>

                                            </p>
                                        </div>

                                        <div class="col-sm-8">
                                            <ul>
                                                
                                                <li>Registered in <strong>HARYANA</strong></li>
                                                <li>Filed in IPOffice <strong>DELHI</strong></li>
                                                
                                            </ul>
                                        </div>
                                        <div class="col-sm-4 text-center">
                                        </div>
                                      </div>
                            </div>


                        
                       
 



            </div>

XPATHS: H3的标签://h3[@class='companyname'] 按钮://div[@class='col-sm-12']/p/button[@class='btn btn-xs btn-danger']或://div[@class='col-sm-12']/p/button[@class='btn btn-xs btn-success']

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-17 10:35:23

您可以通过标记查找元素(如果希望查找所有<h3>标记或类名)。对于第一个问题,您应该使用:

代码语言:javascript
复制
elements = driver.find_elements_by_tag_name('h3')

for element in elements:
    print(element.text)

或按类名查找:

代码语言:javascript
复制
element = driver.find_elements_by_class_name('btn btn-xs btn-success')

for element in elements:
    print(element.text)

请注意,您还有名为find_element_by_<class_name|tag_name>的方法,它只返回一个元素(它找到的第一个元素)

票数 4
EN

Stack Overflow用户

发布于 2021-05-17 10:27:44

您可以使用'元素‘将其放到元素列表中。然后使用循环迭代它,并在循环中将代码放置到getText()。然后把它放到一个列表中,当你需要使用它时,你可以从列表中得到所有的文本。

例如:

代码语言:javascript
复制
elements = driver.find_elements(By.ID, 'abc')

for e in elements:
    print(e.text)

在这里打印文本。相反,您可以将其添加到列表中并从中返回列表。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67567512

复制
相关文章

相似问题

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