首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Selenium和Python通过爬虫测试非标准下拉列表

如何使用Selenium和Python通过爬虫测试非标准下拉列表
EN

Stack Overflow用户
提问于 2017-05-28 07:43:03
回答 1查看 750关注 0票数 0

我在大学的一个项目中为网页建了一台机器。现在,我在网页中遇到了测试下拉列表。具体来说,下面的页面不使用标准的“下拉”类。

代码语言:javascript
复制
https://www.mirrorfiction.com/zh-Hant/book/406

我很难执行一个决策程序来判断网页中是否有下拉,以及是否有下降的情况。

程序员似乎使用了一个名为btnGa的类或类似的东西。我不能用谷歌搜索。

我不知道浏览器是如何知道下拉标签的。

html源太大了。所以我只复制了下面的一小部分。

html源包含一个ul的navlist类。这个ul中的安莉标签包含另一个ul,它实际上是一个悬停的下拉列表。

但我真的不明白浏览器怎么会知道这是一个下拉列表。因此,我不知道如何编写测试用例来单击下拉列表中的按钮。

有谁能帮助我识别下拉列表并单击下拉列表项?

HTML:

代码语言:javascript
复制
<ul class="navList">
    <li class="mobileDisable">
        <a data-ga-label="小說" data-ga-action="click" data-ga-category="header" onclick="app.navLiClick(this)" class="hasSub btnGa open" href="https://www.mirrorfiction.com/zh-Hant/list/novel">
            <span class="text novel">小說</span>
        </a>
        <ul>
            <li>
                <a data-ga-label="小說-仙俠" data-ga-action="click" data-ga-category="header" class="btnGa" href="https://www.mirrorfiction.com/zh-Hant/list/novel/classification/11">
                        <span class="text">仙俠</span>
                        <span class="num">/ 16</span>
                    </a>
                </li>
                <li>
                    <a data-ga-label="小說-玄幻" data-ga-action="click" data-ga-category="header" class="btnGa" href="https://www.mirrorfiction.com/zh-Hant/list/novel/classification/9">
                        <span class="text">玄幻</span>
                        <span class="num">/ 24</span>
                    </a>
                </li>
                <li>
                    <a data-ga-label="小說-奇幻" data-ga-action="click" data-ga-category="header" class="btnGa" href="https://www.mirrorfiction.com/zh-Hant/list/novel/classification/29">
                        <span class="text">奇幻</span>
                        <span class="num">/ 56</span>
                     </a>
                                </li>
                                                            <li>
                     <a data-ga-label="小說-武俠" data-ga-action="click" data-ga-category="header" class="btnGa" href="https://www.mirrorfiction.com/zh-Hant/list/novel/classification/10">
                         <span class="text">武俠</span>
                         <span class="num">/ 11</span>
                      </a>
                  </li>
                                                            <li>
                  <a data-ga-label="小說-科幻" data-ga-action="click" data-ga-category="header" class="btnGa" href="https://www.mirrorfiction.com/zh-Hant/list/novel/classification/8">
                       <span class="text">科幻</span>
                       <span class="num">/ 17</span>
                  </a>
              </li>
                                                            <li>
              <a data-ga-label="小說-恐怖" data-ga-action="click" data-ga-category="header" class="btnGa" href="https://www.mirrorfiction.com/zh-Hant/list/novel/classification/30">
                       <span class="text">恐怖</span>
                       <span class="num">/ 11</span>
              </a>
            </li>
                                                            <li>
           <a data-ga-label="小說-校園" data-ga-action="click" data-ga-category="header" class="btnGa" href="https://www.mirrorfiction.com/zh-Hant/list/novel/classification/7">
                  <span class="text">校園</span>
                  <span class="num">/ 16</span>
                </a>
            </li>
                                                            <li>
            <a data-ga-label="小說-愛情" data-ga-action="click" data-ga-category="header" class="btnGa" href="https://www.mirrorfiction.com/zh-Hant/list/novel/classification/1">
                  <span class="text">愛情</span>
                  <span class="num">/ 78</span>
               </a>
            </li>
                                                            <li>
            <a data-ga-label="小說-寫實" data-ga-action="click" data-ga-category="header" class="btnGa" href="https://www.mirrorfiction.com/zh-Hant/list/novel/classification/5">
                  <span class="text">寫實</span>
                  <span class="num">/ 48</span>
                </a>
            </li>
                                                            <li>
                                    <a data-ga-label="小說-歷史" data-ga-action="click" data-ga-category="header" class="btnGa" href="https://www.mirrorfiction.com/zh-Hant/list/novel/classification/6">
                                        <span class="text">歷史</span>
                                        <span class="num">/ 13</span>
                                    </a>
                                </li>
                                                            <li>
                                    <a data-ga-label="小說-驚悚" data-ga-action="click" data-ga-category="header" class="btnGa" href="https://www.mirrorfiction.com/zh-Hant/list/novel/classification/31">
                                        <span class="text">驚悚</span>
                                        <span class="num">/ 24</span>
                                    </a>
                                </li>
                                                            <li>
                                    <a data-ga-label="小說-其它" data-ga-action="click" data-ga-category="header" class="btnGa" href="https://www.mirrorfiction.com/zh-Hant/list/novel/classification/12">
                                        <span class="text">其它</span>
                                        <span class="num">/ 40</span>
                                    </a>
                                </li>
                                                    </ul>
                    </li>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-29 06:00:55

考虑按照以下步骤和代码行打开url &单击菜单:

  • 通过pip安装当前版本的selenium
  • 下载最新的chromedriver.exe并在脚本中提供绝对路径
  • 代码块: 从selenium导入webdriver driver=webdriver.Chrome("C:\Utility\your_directory\chromedriver.exe") #最大化浏览器窗口driver.maximize_window() #打开浏览器driver.get中的url (“https://www.mirrorfiction.com/zh-Hant/book/406"”#单击第一个菜单项小說driver.find_element_by_xpath("//nav@id='nav'/div/ul/li/a/span@class='text新颖‘).click()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44224924

复制
相关文章

相似问题

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