2012-12-04 64 views
2

我想從此HTML中讀取金額值(24.40)。如何在Python/Selenium中從網頁中讀取特定值

<div id="order-total" class="clear-fix" style="margin-bottom:20px;"> 
    <h3 class="col-left">Order total</h3> 
    <h3 class="col-right" style="display: block;"> 
    <span class="credit-total-to-order" data-total-to-order="24.40">$ 24.40</span> 
    credits 
    </h3> 
</div> 


xpath - /html/body/div/header/section/form/div[5]/h3[2]/span 
css - html body.ui-lang-en div#slave-edit.string-v2 header#slave-edit-header.edit 
     section#order-form form#frm-order-translation div#order-total.clear-fix 
     h3.col-right span.credit-total-to-order 

我知道我應該使用find_element_by_class_namefind_element_by_css_selector
但不確定應該是什麼論點。

我該怎麼辦?

回答

2

爲什麼不從元素中選擇值並解析字符串以獲得您需要的答案。例如,您可以拆分字符串並忽略美元以返回您需要的數字。

someString = selenium.find_element_by_css_selector(".credit-total-to-order").text 
someString.split(' ')[1] 

請記住 - 這將爲您提供的例子工作。

+0

只要是明確的 - 使用一個CSS選擇點符號表明您正在尋找一個類名的時候,所以.someClass找到與類元素= 「someClass」 – CBA

+0

'.text'做什麼? – cppcoder

+0

它是一個從元素中提取文本並將其傳遞給變量的硒方法,因此someString包含值「$ 24.40」 – CBA

0

它沒有必要使用find_element_by_class_name or find_element_by_css_selector ..你可以使用XPath achive像這樣

driver.find_element_by_xpath("//span[@class='credit-total-to-order']").text 

UPDATE:

根據你更新的HTML它看起來喜歡的風格,使你的元素隱藏。同時,我也注意到,您想獲得的值也存儲在屬性數據 - 按訂單總數中。

所以,你可以做財產以後這樣的:

driver.find_element_by_xpath("//span[@class='credit-total-to-order']").get_Attribute("data-total-to-order") 
+0

同樣的錯誤:'ElementNotVisibleException:消息:u'Element目前不是可見,因此可能不會與'' – cppcoder

+0

互動你能否請你粘貼你的完整的html代碼更好的undrestanding? –

+0

添加了該組件的html源代碼。 – cppcoder