2017-05-28 28 views
-2

我在一個建立網頁cralwer的大學項目。 現在我在網頁中遇到了測試下拉列表。 具體而言,以下頁面不使用標準的「下拉」類。爬蟲不能測試非標準的下拉列表

https://www.mirrorfiction.com/zh-Hant/book/406 

我很難實施一個判斷程序來判斷網頁是否有下拉以及下拉是否已經下降。

程序員似乎使用一個名爲btnGa或類似的類。 我不能谷歌。
我不知道瀏覽器如何知道下拉標籤。
html源代碼太大。 所以我只複製了下面的一小部分。
html源代碼包含一個ul的navlist類。 然後,這個ul中的li標籤包含另一個ul,它實際上是懸停時的下拉列表。
但我真的無法看到瀏覽器如何知道這是一個下拉列表。 因此我不知道如何編寫測試用例來點擊這個下拉列表中的按鈕。

任何人都可以幫助我認識到下拉列表並單擊下拉列表項?

感謝

FARN

<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> 
+0

由於某種原因,菜單不會顯示在我的瀏覽器中懸停,但你嘗試過'find_elements_by_tag_name'?您是否嘗試點擊鏈接(「'標籤)? – Tom

+0

謝謝!你的意思是我的工作地點?或我的程序進行測試?我正在考慮如何編寫一個可以像猴子一樣自動點擊網頁的程序。但是如果你使用http鏈接,你能看到懸停的下拉菜單嗎? –

+0

謝謝!你的意思是我的工作地點?或我的程序進行測試?我正在考慮如何編寫一個可以像猴子一樣自動點擊網頁的程序。但是我還沒有寫,因爲我不確定哪些功能可以識別下拉列表。如果你使用http鏈接,你能看到懸停的下拉菜單嗎? –

回答

1

這裏是回答你的問題:

考慮以下的步驟&行代碼打開URL &點擊菜單上的:

#install current version of selenium through pip 
#import the webdriver module from selenium 
from selenium import webdriver 

#download the latest chromedriver.exe and provide the absolute path in your script 
driver=webdriver.Chrome("C:\\Utility\\your_directory\\chromedriver.exe") 

#maximize the browser window 
driver.maximize_window() 

#open the url in the browser 
driver.get("https://www.mirrorfiction.com/zh-Hant/book/406") 

#click on the first menu item 小說 
driver.find_element_by_xpath("//nav[@id='nav']/div/ul/li/a/span[@class='text novel']").click() 

讓我知道如果這個答案是你的問題。

+0

感謝您的幫助。但那是手動測試的解決方案,而不是我所問的。我正在進行一個大學項目,用於構建一個應該系統地點擊所有可點擊的網絡爬蟲。但這裏的問題是,我沒有看到如何通過算法來決定是否可以點擊下拉菜單。我在下載之前和之後下載了html,它看起來像是HTML代碼幾乎一樣。雖然我仍然手動比較差異。 –

+0

@FarnWang讓我知道你的確切步驟,以便我們可以幫助你。您以前的問題缺少「carwler」字樣。謝謝 – DebanjanB