2017-07-03 5 views
1

私はSeleniumのページからリンクを取得しようとしています。コードは次のとおりです。PythonのSeleniumプロパティ抽出に関する問題

link = 'http://cancer.sanger.ac.uk/cosmic/sample/overview?id=2120881' 
driver = webdriver.Chrome() 
driver.get(link) 
elem = driver.find_element_by_link_text("Variants") 
elem.click() 
time.sleep(2) # wait to load 
elems = driver.find_elements_by_xpath("//table[@id='DataTables_Table_0']/tbody/tr[3]/td") 
elem = elems[4] 
print(elem.get_property('href')) 
print(elem.get_attribute("href")) 
print(elem.text) 

なぜhrefをフェッチすると結果はありませんか?どうすればこのリンクを得ることができますか?

ありがとうございます!

答えて

2

スクリプトは正常に動作します。問題はxpathにあります。 a要素が必要な場合は、それらを見つける必要があり、外側はtdではありません。

elems = driver.find_elements_by_xpath("//table[@id='DataTables_Table_0']/tbody/tr[3]/td") 

/td/a注)

elems = driver.find_elements_by_xpath("//table[@id='DataTables_Table_0']/tbody/tr[3]/td/a") 

へのもう一つのヒントに変更: http://cancer.sanger.ac.uk/cosmic/sample/overview?id=2120881#datatab:あなたは Variantsボタンを調べると を、あなたはそれがまた、URLを持っていることがわかります。最後に #datatabを追加するだけです。多くの義務が

from selenium import webdriver 

link = 'http://cancer.sanger.ac.uk/cosmic/sample/overview?id=2120881#datatab' 
driver = webdriver.Chrome() 
driver.get(link) 
elems = driver.find_elements_by_xpath(
    "//table[@id='DataTables_Table_0']/tbody/tr[3]/td/a") 
elem = elems[4] 
print(elem.get_property('href')) 
print(elem.get_attribute("href")) 
print(elem.text) 
+0

:それと

は、最終的なスクリプトは次のようになりべきであると述べました。完全に構造化された、徹底的な答え。 –

関連する問題