2013-10-17 94 views
1

我有多個div class元素級別,我只需要找到特定元素並獲取文本值並將其存儲在變量中。使用Selenium/Python查找html頁面的特定元素

<div class="Serial"> 
<p> … </p> 
<p> 
<span> 
    <a href="mailto:[email protected]"> 
     Mr. XYZ 
    </a> 
</span> 
</p> 
<p> … </p> 
<p> … </p> 

所以,我們有4個不同的段落外面,我需要只讀第二款,電子郵件ID保存到一個變量。當我使用以下代碼時,

find_element_by_xpath("//div[@class='Serial']") 

我得到了所有4段信息。無論如何,我可以指定在div類中讀取哪個段落?我知道訂單不會改變,我只想讀第二個p元素。感謝你的幫助。

+0

如果您無法得到正確的XPath,我會建議嘗試[cssselect(HTTPS:/ /pypi.python.org/pypi/cssselect)將CSS選擇器轉換爲xpaths。可以更容易計算出您選擇的元素。 –

回答

0

您可以嘗試訪問<p>標記,方法是給xpath作爲find_element_by_xpath("//div[@class='Serial']/p[2]/span/a")以訪問第二段中存在的電子郵件ID。

0

我認爲這是不完全正確的依靠段落的順序 - 有一天它可能會改變,而那些在你之後會來到的人可能會被p [2]所迷惑。當你需要找到從電子郵件中的鏈接段落文本,我相信這個XPath會做的伎倆:

//p[span/a[starts-with(@href, 'mailto:')]] 
相關問題