0

私はこのようないくつかのアコーディオンの要素を持つウェブサイトがあります。アコーディオン内のすべてのリンクを開いてキャッチする方法は?

enter image description here

<div class="col-md-12"> 

     <a data-toggle="collapse" data-parent="#accordion1" title="Click to expand pet name" href="#petName1"> 
      <span class="list-unstyled" style="text-decoration: none;"></span> Dog 
     </a> 


     <ul id="petName1" class="collapse"> 

       <li> 
        <a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=200465" title="Click to view Dog | PET SHOP"> 
           Dog</a> | PET SHOP 
        </a> 

       </li> 

       <li> 
        <a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=203874" title="Click to view Dog | PET SHOP"> 
           Dog</a> | PET SHOP 
        </a> 

       </li> 

     </ul> 
     </div> 
    </td> 
</tr> 

<tr> 
    <td> 

    <div class="col-md-12"> 

     <a data-toggle="collapse" data-parent="#accordion1" title="Click to expand pet name" href="#petName2"> 
      <span class="list-unstyled" style="text-decoration: none;"></span> Cat 
     </a> 


     <ul id="petName2" class="collapse"> 

       <li> 
        <a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=076477" title="Click to view Cat"> 
           Cat 
        </a> 

       </li> 

       <li> 
        <a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=077575" title="Click to view Cat"> 
           Cat 
        </a> 

       </li> 

       <li> 
        <a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=078773" title="Click to view Cat"> 
           Cat</a> 
        </a> 

       </li> 

       <li> 
        <a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=090548" title="Click to view Cat"> 
           Cat</a> 
        </a> 

       </li> 

       <li> 
        <a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=091226" title="Click to view Cat"> 
           Cat</a> 
        </a> 

       </li> 

       <li> 
        <a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=091624" title="Click to view Cat"> 
           Cat</a> 
        </a> 

       </li> 

       <li> 
        <a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=091650" title="Click to view Cat"> 
           Cat</a> 
        </a> 

       </li> 

       <li> 
        <a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=202357" title="Click to view Cat"> 
           Cat</a> 
        </a> 

       </li> 

       <li> 
        <a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=204846" title="Click to view Cat"> 
           Cat</a> 
        </a> 

       </li> 

       <li> 
        <a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=205300" title="Click to view Cat"> 
           Cat</a> 
        </a> 

       </li> 

       <li> 
        <a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=205519" title="Click to view Cat"> 
           Cat</a> 
        </a> 

       </li> 

     </ul> 


     </div> 
    </td> 
</tr> 

<tr> 
    <td> 

    <div class="col-md-12"> 

     <a data-toggle="collapse" data-parent="#accordion1" title="Click to expand pet name" href="#petName3"> 
      <span class="list-unstyled" style="text-decoration: none;"></span> Gold Fish 
     </a> 

     <ul id="petName3" class="collapse"> 

       <li> 
        <a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=021540" title="Click to view Gold Fish"> 
           Gold Fish </a> 
        </a> 

       </li> 

     </ul> 


     </div> 
    </td> 
</tr> 
<tr> 
    <td> 

    <div class="col-md-12"> 

     <a data-toggle="collapse" data-parent="#accordion1" title="Click to expand pet name" href="#petName4"> 
      <span class="list-unstyled" style="text-decoration: none;"></span> Horse 
     </a> 


     <ul id="petName4" class="collapse"> 

       <li> 
        <a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=020702" title="Click to view Horse"> 
           Horse </a> 
        </a> 

       </li> 

     </ul> 
     </div> 
    </td> 
</tr> 

<tr> 
    <td> 

    <div class="col-md-12"> 

     <a data-toggle="collapse" data-parent="#accordion1" title="Click to expand pet name" href="#petName5"> 
      <span class="list-unstyled" style="text-decoration: none;"></span> Ferret 
     </a> 
     <ul id="petName5" class="collapse"> 

       <li> 
        <a href="/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=200153" title="Click to view Ferret"> 
           Ferret </a> 
        </a> 
       </li>    
     </ul> 

     </div> 
    </td> 
</tr> 
</tbody> 

どのように私はすべてのセクションでセレンウェブドライバをクリックして、アコーディオンの各セクション以下のリンクをクリックして保存することができますが?。私がしようとした:それは何もしませんので、

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Firefox() 
driver.get("https://example.com") 
inputElement = driver.find_element_by_id("searchterm") 
inputElement.send_keys('pets') 
inputElement.send_keys(Keys.ENTER) 
driver.find_element_by_id("mp-pusher").click() 
inputElement.submit() 

しかし、それは(それだけ突き出して)働いていません。すべてのリンクを取得し、すべてのアコーディオンを開く方法の任意のアイデア?次

+0

時々私は 'driver.page_source'属性(すべてのjavascriptを実行した後のブラウザのソース)を使ってソースを取得し、beautifulsoupのようなものを使って解析します。 –

+0

このケースの例を教えていただけますか?...ありがとうございました! @PauloScardine –

答えて

0

は、PythonについてのJavaコードはわからないですが、これは、リスト内のすべてのアコーディオンを取得します

List<WebElement> accordions = driver.findElements(By.xpath("\\a[@data-parent='#accordion1']"); 

同じロジックを試すことができます。今度はリストを繰り返し、各アコーディオンをクリックしてください。

各アコーディオンの下にリンクを保存するには、前のリストのwebelementを使用できます。

+0

"InvalidSelectorException:メッセージ:与えられたxpath式" \ a [@ data-parent = '#accordion'] "が無効です:SyntaxError:式が正当な式ではありません。" –

+0

"\\ a [@ data-parent = '#accordion1'] "あなたは" \ a [@ data-parent = '#accordion'] " –

関連する問題