2016-03-26 5 views
2

existiert Ich möchte das "160.528" Element in dem HTML-Code unten finden:Python Selen nicht in der Lage eine Tabelle ID zu finden, die

<td class="calCell"> 
    <div id="cal1"> 
     <div align="center"> 
      <table id="table1"> 
       <tbody> 
        <tr></tr> 
         <td> 
          <a id="160528"></a> 
         </td> 
       </tbody> 
      </table> 
     </div> 
    </div> 
</td> 

was ich getan habe ist:

calCell = driver.find_element_by_class_name('calCell') 
cal1 = calCell.find_element_by_id('cal1') 
table1 = cal1.find_element_by_id('table1') 

Das Programm wird beschweren "Element kann nicht gefunden werden", dennoch existiert die Tabelle1 wirklich.

Gibt es jemanden, der einige Lichter teilt, wie man den 160528 findet? Gibt es einen einfacheren Ansatz, als einzeln zum Unterelement zu gehen?

+0

haben Sie versucht, '' 'item = driver.find_element_by_id ("160528")' '' – willnx

+0

yep, ich habe versucht, dass. aber Selen scheint kein Element im Unterelement zu finden :( – damingzi

Antwort

1

Die Tabelle ist möglicherweise nicht vorhanden, wenn Sie danach suchen. Fügen Sie eine Wartezeit:

from selenium.webdriver.common.by import By 
from selenium.webdriver.support.select import Select 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 

wait = WebDriverWait(driver, 10) 
table1 = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".calCell #cal1 #table1"))) 
+0

Danke Alecxe. Es tut mir leid für meinen Tippfehler. Was ich für CalCell getan habe, ist find_element_by_class_name(). Aber ich konnte immer noch nicht finden "160528" :( – damingzi

+0

Unglaublich, Es ist die Verzögerung, die dazu führt, dass der Tisch nicht erreichbar ist. Du hast es wieder genagelt. Gott sei Dank, ich muss an diesem Wochenende nicht mehr Zeit verschwenden, um dieses Problem zu debuggen :) – damingzi

Verwandte Themen