如何使用Selenium获取css类名?

我是selenium测试的新手。 我想用selenium获取css类名。 我正在使用eclipse和Java进行开发。

Odd row
Even row
Odd row2
Even row2

有没有办法让类名称’奇数’或’偶数’使用selenium? 一世

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

  selenium.getAttribute(//xpath@class); 

指定您需要知道其类的元素的Xpath。

谢谢。

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

 element.getAttribute("class") 

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

css=tr:nth(indx_base_0)

第n行和class级

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] 

这是一些有用的例子

在代码片段的上下文中,假设您希望为表中的第一行获取“奇数”类。
您可以按照以下步骤操作:
(注意: – 假设您的网页中有一个表)

1- 首先获取元素:

  WebElement ele = driver.findElement(By.xpath(“// table / tr [1]”)); 

上面的代码使用xpath来获取元素,即表的第一行。

2- 然后,使用“getAttribute”方法获取元素的属性“class”:

  String class_name = ele.getAttribute(“class”); 

上面的代码将获取相关元素的“类”名称,并将其分配给String变量“class_name”以供进一步使用

同样,为了获得“even”类,这是第四行表的属性,您可以使用以下代码:

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

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

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

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