如何使用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");