2017-03-21 17 views
0

さて、Craigslistからリンクを引き出そうとしています。具体的に私は、このような既に見つかっている要素を見つけることができません

<a href="/gbs/fee/6023288599.html" data-id="6023288599" class="result-title hdrlnk">NICE 2 BR NEAR BOSTON COLLEGE- HT/HW INCLUDED - ON COMM AVE 9/1</a> 

としてではなく、次のコード

 address = driver.find_elements_by_class_name('result-title')[i].text 
     print(address) 
     address2 = driver.find_element_by_partial_link_text(address).get_attribute('href') 
     print(address2) 
     driver.get(address2) 

が動作しないいくつかの理由でクラス=結果-タイトルのリンクを見つけるためにしようとしています。例のリンクを見つけようとすると、代わりに次のエラーが発生します。

selenium.common.exceptions.NoSuchElementException:メッセージ:要素を見つけることができません:NICE 2 BR NEAR BOSTON COLLEGE-HT/HW INCLUDED-ON COMM AVE 9/1

誰かが間違っていることを知っていますか?

編集:私はこれが最初のことでget_attributeを呼び出すことができるときに、これを行うのは馬鹿で丸みのある方法であることを認識しましたが、なぜそれが機能しないのか不思議です。

+0

セレンはもう一度試してみてください。 – user3012759

答えて

0

あなたが探している要素をロードするのに時間がかかることがあります。ロードする前にそれを探していることがあります。 timeout documentationをご覧ください。暗黙的または明示的なタイムアウトを指定すると、次のようになります。

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://somedomain.com/url_that_delays_loading") 
try: 
    element = WebDriverWait(driver, 10).until(
     EC.presence_of_element_located((By.ID, "myDynamicElementId")) 
    ) 
finally: 
    driver.quit() 
関連する問題