我想在范围报告中显示Web元素的名称(在我的示例中为“ USER_LOGIN”); 我怎么得到的?
我尝试使用getText()
,但结果为空白。
例如,这是站点代码:
<input class="form_control w100p ffg big" type="text"
name="USER_LOGIN" value="lpelet2@gmail.com" maxlength="255" placeholder="E-mail">
这就是我想要做的:
public void verifyElementExist(WebElement weElem) throws ParserConfigurationException, SAXException, IOException
{
try
{
weElem.isDisplayed();
extnTest.log(LogStatus.INFO, "Element exist - " + weElem.getText());
}
catch (Exception e)
{
...
}
}
答案 0 :(得分:0)
您可以获得有关getText
和getAttribute
here之间的区别的详细信息。
下面的代码将获得名称或ID:
String nameOrId = weElem.getAttribute("name") == null ? weElem.getAttribute("name") : weElem.getAttribute("id");
if (name == null)
name = "uknown";
并非所有元素都具有ID或名称,使用xpath或css选择器会发现某些元素,并且上面的代码对您不起作用。简单的方法是修改您的方法,如下所示:
public void verifyElementExist(String name, WebElement weElem) throws ParserConfigurationException, SAXException, IOException
{
try
{
weElem.isDisplayed();
extnTest.log(LogStatus.INFO, "Element exist - " + name);
}
catch (Exception e)
{
...
}
}
答案 1 :(得分:0)
您的代码必须返回空白!
我相信您对name作为属性和name作为Element的名称感到困惑。在您的情况下,输入框具有一个名称作为属性,您可以在用户单击“提交”按钮后使用它来查找元素,或者开发人员可以使用它来解析数据。
如果HTML代码类似这样,您的代码(getText())将返回UserName
**UserName**
<input class="form_control w100p ffg big" type="text" name="USER_LOGIN" value="lpelet2@gmail.com" maxlength="255" placeholder="E-mail">
您肯定会在日志中输入UserName。
专业项目中的大多数元素都应使用名称,但没有义务拥有它。因此,在框架级别承诺元素名称是不合理的。如果您根本不想记录其名称,则可能需要在记录时进行一些过滤。