Selenium WebDriver中getText()和getAttribute()有什么区别?

17
两者都用于获取标签之间的WebElement值。 我的假设正确吗? 如果不正确,请详细说明。

在下面的情况中,通过使用 getText() 可以获取 webElement 的值(即)手动测试员,自动化测试员。例如:<input id="profession-0" type="checkbox" value="Manual Tester" name="profession"> 手动测试员 <input id="profession-1" type="checkbox" value="Automation Tester" name="profession"> <label class="checkbox" for="profession-1"> 自动化测试员</label> - Senthilvel
如果您给我点了个差评,请解释一下为什么要这样做,这样我就可以改进我的回答,并在未来的回答中考虑到您的观点。 - Senthilvel
你可以谷歌一下这两个东西,阅读解释它们之间差异的文档。这也许就是为什么这个问题被踩了的原因。 - JeffC
2
@JeffC 为了以简单易懂的方式获得答案,我在这里提出了问题。但如果像这样被投票否决,那么提出问题就没有意义了。 - Senthilvel
4
重点是,在提问之前,你需要进行一些基础研究并至少对自己所问的问题有基本的了解。很明显你没有这样做,因为如果你只是在谷歌上搜索你的问题,就可以找到答案。我们不是你的研究团队,我们没有被付费来回答问题。期望你尝试解决自己的问题。一旦你已经付出了合理的努力但仍然卡住了,你才可以提出问题,声明你的问题、你尝试过什么以及你遇到什么错误。【阅读这篇文章】(http://stackoverflow.com/help/how-to-ask) - JeffC
4个回答

46
  <input attr1='a' attr2='b' attr3='c'>foo</input>

getAttribute(attr1) 会得到 'a'

getAttribute(attr2) 会得到 'b'

getAttribute(attr3) 会得到 'c'

getText() 不带参数时只能得到 'foo'


但是对于HTML表单中的文本框不起作用。 - Peter Mortensen

10

getAttribute() -> 它获取包含HTML标签中任意属性之一的文本。假设有一个类似于的HTML标签

<input name="Name Locator" value="selenium">Hello</input>

现在的 getAttribute() 获取 'value' 属性的数据,其值为 "Selenium"。

返回:

属性的当前值,如果未设置则返回 null。

driver.findElement(By.name("Name Locator")).getAttribute("value")  //

通过使用Selenium WebDriver预定义的getAttribute("value")方法检索字段值并将其分配给String对象来获取字段值。

getText() -> 提供WebElement的innerText。 获取此元素的可见(即不被CSS隐藏)innerText,包括子元素,没有任何前导或尾随空格。

返回:

此元素的innerText。

driver.findElement(By.name("Name Locator")).getText();

'你好'将出现


3
<img src="w3schools.jpg" alt="W3Schools.com" width="104" height="142">

在上述html标记中,我们有不同的属性,如srcaltwidthheight
如果您想从上述html标记中获取任何属性值,您必须在getAttribute()方法中传递属性值。
语法:
getAttribute(attributeValue)
getAttribute(src) you get w3schools.jpg
getAttribute(height) you get 142
getAttribute(width) you get 104 

0
getText(): 获取此元素的可见(即未被CSS隐藏)innerText,包括子元素,但不包括任何前导或尾随空格。
getAttribute(String attrName): 获取元素给定属性的值。即使在页面加载后修改了该属性的值,也将返回当前值。更确切地说,此方法将返回给定属性的值,除非该属性不存在,在这种情况下,将返回具有相同名称的属性的值(例如textarea元素的“value”属性)。如果两个值都未设置,则返回null。 "style"属性将尽可能转换为带有分号的文本表示形式。以下被视为“布尔”属性,并将返回“true”或null:async、autofocus、autoplay、checked、compact、complete、controls、declare、defaultchecked、defaultselected、defer、disabled、draggable、ended、formnovalidate、hidden、indeterminate、iscontenteditable、ismap、itemscope、loop、multiple、muted、nohref、noresize、noshade、novalidate、nowrap、open、paused、pubdate、readonly、required、reversed、scoped、seamless、seeking、selected、spellcheck、truespeed、willvalidate。最后,以下常常大小写错误的属性/属性名将按预期进行评估:"class"、"readonly"。

getText() 返回元素的可见文本。

getAttribute(String attrName) 返回传递参数的属性值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接