【问题标题】:How to get css class name using Selenium?如何使用 Selenium 获取 css 类名?
【发布时间】:2011-12-04 13:19:33
【问题描述】:
我是硒测试的新手。我想使用 selenium 获取 css 类名。我正在使用 eclipse 和 Java 进行开发。
<table >
<tr class="odd"><td>Odd row</td></tr>
<tr class="even"><td>Even row</td></tr>
<tr class="odd"><td>Odd row2</td></tr>
<tr class="even"><td>Even row2</td></tr>
</table>
有没有办法使用 selenium 获取类名“奇数”或“偶数”?我
【问题讨论】:
标签:
java
selenium
css-selectors
【解决方案1】:
从WebElement 你可以像这样使用getAttribute 方法:
element.getAttribute("class")
【解决方案2】:
是的,您可以使用getAttribute(attributeLocator) 函数来满足您的要求。
selenium.getAttribute(//xpath@class);
指定您需要知道其类的元素的 Xpath。
谢谢。
【解决方案3】:
没有什么依赖于eclipse或者java,其实更多的是位置策略。
如果您想访问带有/不带有 css 类的特定 tr 元素,您可以使用
css定位器:
css=tr:nth(indx_base_0)
类的第n行
css=tr.odd:nth(indx_base_0)
类奇数的第一行
css=tr.odd
使用 xpath:
//tr[index_base_1]
类奇数的第一行
//tr[@class='odd']
第n行奇数类
//tr[@class='odd'][index_base_1]
这里有一些useful examples
【解决方案4】:
在代码 sn-p 的上下文中,假设您想要获取表中第一行的“奇数”类。
您可以按照以下步骤操作:
(注意:- 假设您的网页中有一个表格)
1- 先获取元素:
WebElement ele = driver.findElement(By.xpath("//table/tr[1]"));
上面的代码使用 xpath 来获取元素,即表格的第一行。
2- 然后,使用“getAttribute”方法获取元素的属性“class”:
String class_name = ele.getAttribute("class");
上述代码将获取相关元素的“类”名称并将其分配给字符串变量“class_name”以供进一步使用
同样,为了获得“偶数”类,也就是表格第四行的属性,你可以使用下面的代码:
ele = driver.findElement(By.xpath("//table/tr[4]"));
class_name = ele.getAttribute("class");
【解决方案5】:
如果 CSS 是您的要求,并且在没有附加/区分元素属性的情况下,请尝试以下操作(在示例中,我使用了简单的文本断言):
assertEquals(selenium.getText("css=tr.odd > td"), "Odd row");
assertEquals(selenium.getText("css=tr.even > td"), "Even row");
assertEquals(selenium.getText("//tr[3]/td"), "Odd row2");
assertEquals(selenium.getText("//tr[4]/td"), "Even row2");
【解决方案6】:
使用 C# 使用 Selenium 获取 CSS 类名:
string _className;
IWebElement _ele = _driver.FindElement(By.Xpath("Xpath of Element"));
_className = _ele.GetAttribute("AttributeName Here");