2009-12-29 80 views
4

我想選擇一個元素的屬性值。 e.g如果我有使用input[name='myInput']輸入元素如何使用css選擇器提取屬性值?

<input type="text" name=myInput value="100"> 

我能找到它,但我如何才能使用CSS選擇器的它的價值?

BTW,我嘗試使用CSS選擇

+0

如果您對用於「選擇」和「定位」的技術提供了一些提示,將會有所幫助。 XSLT中的XPath? JavaScript使用DOM? JavaScript與jQuery?有很多猜測之中。 – ndim 2009-12-29 01:34:22

+0

對不起,這是在Selenium。我正在嘗試使用CSS選擇器(而不是XPath)來獲取輸入元素的值。 – John 2009-12-29 01:39:23

+0

顯然另一個人問了一個類似的問題,但是這個人並沒有試圖提取他之後輸入元素的值http://stackoverflow.com/questions/1909584/xpath-to-css-selector – John 2009-12-29 01:48:51

回答

2

如果在Perl使用WWW ::硒那麼它只是:

my $val = $selenium->get_value("css=input[name='myInput']"); 

如果使用另一種語言,然後硒庫應該支持的get_value函數/方法。

+0

啊哈!那是我的問題。我沒有使用「css =」。謝謝。 – John 2009-12-29 02:09:25

+0

順便說一句,該問題的另一附錄 - 如果我有其他屬性呢?讓我們說如果我有一個複選框,我想獲得該複選框的ID或其onclick屬性等。有沒有任何通用的方法來獲取任何元素的屬性值? – John 2009-12-29 02:12:09

+0

如果你之後沒有通過基本的Selenium API處理,那麼總是有'get_eval()',它允許你編寫javascript代碼並返回任何你想要的東西:innerHTML,javascript變量,元素屬性等。 – slebetman 2009-12-29 04:36:35

8

您可能要解釋你想用價值怎樣做才能做到這一點的硒。舉例來說,我有以下的CSS顯示的鏈接中的「#內容」元素的文本在我的打印樣式表:

#content a:link:after, #content a:visited:after { 
    content: " (" attr(href) ") "; 
    font-size: 90%; 
} 

#content a[href^="/"]:after { 
    content: " (http://example.com" attr(href) ") "; 
} 
+0

我有一個表,其中,每行有一個輸入元素的值。我必須讀取所有這些值並將其作爲數組返回。這有幫助嗎? 只是要添加到它,我得到了 表[t => tbody> tr:nth-​​child(1)> td:nth-​​child(1)>輸入 現在我需要找出該輸入元素的值屬性 – John 2009-12-29 01:26:23

0

你最喜歡的JavaScript庫應該有一些辦法做到這一點:

jQuery的

$("input[name=myname]").val() 

原型對CSS seloctors方法是$$()IIRC。

對於這個例子,你也可以使用原生的document.getElementsByName()方法。

+0

我應該在之前添加過。我正在嘗試在Selenium中執行此操作,我嘗試使用硒理解的CSS定位器來提取值。所以我猜,我必須看看JS庫Selenium用於CSS評估的內容。 – John 2009-12-29 01:32:23

+0

請將標籤Selenium添加到您的問題中,並通過在其中某處添加「in Selenium」來重新定義它。 – slebetman 2009-12-29 01:51:07

1

您可以使用下列內容:

WebDriver driver=new FirefoxDriver(); 
    String nameAttribute=driver.findElement(By.cssSelector("Your css selector")).getAttribute("name") 
0

在Java中硒的webdriver有2種方式來做到這一點

driver.findElement(By.name( 「myInput」))的getText() driver.findElement(By.name(「myInput」))。getAttribute(value)