2016-12-15 4 views
1

いくつかのデータを収集するアプリケーションを作成しようとしています。私はPython 2.7とScrapyとSeleniumをWindows 10で使用しています。これまではいくつかのWebページでこれを行いましたが、次のWebサイトからボタンを選択またはクリックすることはできません。ラベルされたボタンをクリックすることができ PythonのscrapとSeleniumを使ってjavascriptのWebページから要素を選択できません

https://aca3.accela.com/Atlanta_Ga/Default.aspx

ない

などXPathを検査するために、私はクロームのdevのツールを使用しました

「検索許可/苦情」、

ここです私が使用しているコード:

import scrapy 
from selenium import webdriver 

class PermitsSpider(scrapy.Spider): 
    name = "atlanta" 
    url = "https://aca3.accela.com/Atlanta_Ga/Default.aspx" 

    start_urls = ['https://aca3.accela.com/Atlanta_Ga/Default.aspx',] 

    def __init__(self): 
    self.driver = webdriver.Chrome() 
    self.driver.implicitly_wait(20) 

    def parse(self, response): 
    self.driver.get(self.url) 

    time.sleep(15) 
    search_button = self.driver.find_element_by_xpath('//*[@id="ctl00_PlaceHolderMain_TabDataList_TabsDataList_ctl01_LinksDataList_ctl00_LinkItemUrl"]') 
    search_button.click() 

そのコードを実行したときに、私は次のエラーを取得する:

はNoSuchElementException:メッセージ:このような要素:要素が見つかりません:{ "方法": "のXPath"、 "セレクタ": "// * @のID =" ctl00_PlaceHolderMain_TabDataList_TabsDataList_ctl01_LinksDataList_ctl00_LinkItemUrl "]"}

Iを追加しました選択を試みる前にそのページが完全にロードされていることを確認するために、すべての眠りと眠りの魔法私はまた、リンクテキスト、および要素を選択するための他の方法を選択しようとしました。なぜこの方法が他の人の私のために働くこのページでは動作しないのか分かりません。コードを実行している間、WebDriverは画面上のページを開き、ロードされたページなどを表示します。

助けてください。あなたが埋め込まれた要素を扱うことができるように、そのフレームに切り替えるには持っているので、... iframeの内側に

答えて

0

Targetリンクをありがとう:

self.driver.switch_to_frame('ACAFrame') 
search_button = self.driver.find_element_by_xpath('//*[@id="ctl00_PlaceHolderMain_TabDataList_TabsDataList_ctl01_LinksDataList_ctl00_LinkItemUrl"]') 

あなたはまた、driver.switch_to_default_content()

とスイッチバックが必要になる場合があります
+0

アンダーソンは天才です。ありがとう、それはそれを修正しました。 –

関連する問題