2009-12-29 147 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)