如何使用Selenium获取css类名?

时间:2011-10-10 13:51:46

标签: java selenium css-selectors

我是硒测试的新手。我想用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的类名'奇数'或'偶数'?我

6 个答案:

答案 0 :(得分:57)

WebElement您可以使用getAttribute方法,如下所示:

element.getAttribute("class")

答案 1 :(得分:15)

是的,您可以根据您的要求使用getAttribute(attributeLocator)功能。

 selenium.getAttribute(//xpath@class);

指定要了解其类的元素的Xpath。

感谢。

答案 2 :(得分:5)

没有任何东西取决于eclipse或java,事实上它更多的是关于位置策略。 如果要使用/不使用css类访问特定的tr元素,可以使用 css定位器:

css=tr:nth(indx_base_0)

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

答案 3 :(得分:5)

在代码片段的上下文中,假设您想要获得课程&#34; odd&#34;表格中的第一行。
您可以按照以下步骤操作:
(注意: - 假设您的网页中有一个表格)

1- 首先获取元素:
   

WebElement ele = driver.findElement(By.xpath("//table/tr[1]"));
    上面的代码使用xpath来获取元素,即表的第一行。

2- 然后,获取属性&#34; class&#34;使用&#34; getAttribute&#34;方法
   

String class_name = ele.getAttribute("class");
   上面的代码将获取&#34;类&#34;相关元素的名称并将其分配给String变量&#34; class_name&#34;供进一步使用

同样,为了获得&#34;甚至&#34; class,这是第四行表的属性,你可以使用下面的代码:

ele = driver.findElement(By.xpath("//table/tr[4]"));
class_name = ele.getAttribute("class");

答案 4 :(得分:1)

如果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");

答案 5 :(得分:0)

使用Selenium使用C#获取CSS类名:

string _className;
IWebElement _ele = _driver.FindElement(By.Xpath("Xpath of Element"));
_className = _ele.GetAttribute("AttributeName Here");