2016-03-30 8 views
0

Webページの一部をクリックしようとしていますが、「NoSuchElementException:要素を見つけることができません」というメッセージが表示されています。Python Selenium:Xpath要素が見つかりません

コードは動作していましたが、ページに変更があったようですが、xpathは変更されませんでした。

私はここで同様の質問の異なる解決策をStackoverflowで試しましたが、この例ではまだ何かが正しくありません。

URLは次のとおりです。 "http://www.bmfbovespa.com.br/pt_br/servicos/market-data/consultas/mercado-a-vista/codigo-isin/pesquisa/"

要素I`mはクリックしようとしている:

from selenium import webdriver 


fp = webdriver.FirefoxProfile() 
fp.set_preference("browser.download.folderList",2) 
fp.set_preference("browser.download.manager.showWhenStarting",False) 
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/msword, application/csv, application/vnd.ms-excel, application/ris, text/csv, image/png, application/pdf, text/html, text/plain, application/zip, application/x-zip, application/x-zip-compressed, application/download, application/octet-stream") 
fp.set_preference('browser.helperApps.alwaysAsk.force', False) 



driver = webdriver.Firefox(firefox_profile=fp) 
driver.get("http://www.bmfbovespa.com.br/pt_br/servicos/market-data/consultas/mercado-a-vista/codigo-isin/pesquisa/") 

### 
# Click "Download de arquivos" (the part with problem) 
### 

elem=driver.find_element_by_xpath(".//*[@id='ctl00_contentPlaceHolderConteudo_rtsDetalhe_tabDownload']/span/span") 
elem.click() 

任意の考え:

私のコードを "デArquivosをダウンロード"?ここ

答えて

0

複数のオプション:

driver.find_element_by_xpath("//a[span/span = 'Download de Arquivos']") 
: "XPathのことで、" ロケータを経由してリンクテキストで

driver.find_element_by_id("ctl00_contentPlaceHolderConteudo_rtsDetalhe_tabDownload") 
    • "IDによる" リンクを見つけます

      そして、重要な部分は、要素iframeの中にあります - あなたはそれに切り替える必要があります。コードの作業

      from selenium import webdriver 
      from selenium.webdriver.common.by import By 
      from selenium.webdriver.support.ui import WebDriverWait 
      from selenium.webdriver.support import expected_conditions as EC 
      
      driver = webdriver.Firefox() 
      driver.get("http://www.bmfbovespa.com.br/pt_br/servicos/market-data/consultas/mercado-a-vista/codigo-isin/pesquisa/") 
      
      driver.switch_to.frame("bvmf_iframe") 
      
      wait = WebDriverWait(driver, 10) 
      elem = wait.until(EC.presence_of_element_located((By.ID, "ctl00_contentPlaceHolderConteudo_rtsDetalhe_tabDownload"))) 
      elem.click() 
      
  • +0

    は、私は両方を試してみました....が、私はまだ「はNoSuchElementException:要素が見つかりません:」そうだメッセージを。 – fmarques

    +0

    @fmarques大丈夫、更新して、それをチェックしてください。 – alecxe

    +0

    それは動作します!どうもありがとうございました! – fmarques

    関連する問題