2017-07-20 12 views
1

シナリオがあります。セレンとPythonを使用して詳細ページからデータを取得しようとしています。私は前のページに戻ると、2,3のフェッチを開始するために self.driver.execute_script(「window.history.go(-1)」)Python-Selenium Pythonでセレニウムを使用して以前のリスティングWebページのデータを取得しています

を使用しようとしましたセレンやPython

に新しいです、4レコードなどですが、問題は次のとおりです。 1レコードを取得した後、詳細ページに移動して残りのデータをフェッチしたクリックイベント。詳細ページからリストページに戻ると、エラーがスローされます。

On cmpname = selectAll .find_element_by_css_selector( ".capsuletitle h2")

エラーが発生します。StaleElem entRefrenceException:要素が

基本的にページの文書に添付されていない、私は両方のページからデータをフェッチする各レコードのページと詳細ページをリストアップしている私が望んでいた

ここ

は私のループコード部分

です
parentTab = self.driver.find_element_by_class_name("capsuleList") 
    for selectAll in parentTab.find_elements_by_class_name("bsCapsule"): 

     cmpname = selectAll.find_element_by_css_selector(".Capsuletitle h2") 
     print(cmpname.text) 

     address = selectAll.find_element_by_css_selector(".Capsuleaddress a span") 
     print(address.text) 

     telephone = selectAll.find_element_by_css_selector(".Capsuletel") 
     print(telephone.text) 

     selectAll.find_element_by_css_selector('.Capsuletitle div a').click() 
     time.sleep(20) 
     adrurl = self.driver.find_element_by_css_selector('.CapsulecallToAction a').get_attribute('href') 
     print(adrurl) 
     self.driver.execute_script("window.history.go(-1)") 
     time.sleep(20) 

よろしく

答えて

0

まず、代わりにself.driver.execute_script( "window.history.goを(-1)")を使用しての、あなただけ(driver.backを使用することができます)。エラーの原因は、要素が含まれていたページが更新されたか、ユーザーが他のページに移動したことが最も頻繁に発生します。だから、あなたはページを戻った後、再び要素を調べることをお勧めします。私はこれが助けて欲しい!

関連する問題