2016-11-25 21 views
1

Heyo!如何查找由硒生成的JavaScript標籤(我猜)

我必須使用硒下載從公司網站上的文件,並且得到了stucked的最後一步:

當我按Ctrl + U網站上的代碼只包含基礎標籤,如與一些作者這些都是空:

<div ng-show="viewContainer === 'PUC'" 
    class="ng-app-element deny-animation-change" animate="fade" 
    id="pucWrapper" cellspacing="0" cellpadding="0" style="width: 100%; height: 100%;"> 

    <div id="pucHeader" cellspacing="0" cellpadding="0"> 
     <div id="pucMenuBar"></div> 
     <div id="pucPerspectives"></div> 
     <div id="pucToolBar"></div> 
     <div id="pucUserDropDown"></div> 
    </div> 

    <div id="pucContent"></div> 
    </div> 

,但是當我選擇並 它說,有在<div id="pucContent">許多標籤檢查通過Chrome瀏覽器開發工具的元素,如何找到硒「看不見」 <select>標籤?

下面回報的代碼與NoSuchElementException

WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.ID, 'pucContent'))).find_element_by_tag_name('select') 

我的猜測是JavaScript的創建新的標籤和<div id="pucContent">標籤內的所有內容

+0

如果Selenium在您搜索時沒有找到標籤,那麼它不在那裏。注意以下警告:1.你搜索的東西不存在,因此你可能會搜索錯誤的東西2.當你搜索時,它不在那裏_因此你可能在它被添加或刪除之後搜索正確的東西。 – vlaz

+0

粘貼頁面加載後使用Ins和工具欄上顯示的HTML。它會讓你更好地瞭解當你需要與它進行交互時頁面的樣子。 – JeffC

回答

0

我的猜測是,<div id="pucContent"></div>有開頭和頁面後,被填充被加載。所以你真正需要等待的是你的等待內容。如果有elemeint內<select>當你檢查,嘗試等待這樣的:

WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, '#pucContent select'))).find_element_by_tag_name('select') 

記住該網頁的「page_source」只是什麼傳遞請求文檔時,也不會包含加載原始文檔後動態加載的任何內容。