如何获取网页元素名称?
How to get web element name?
我想在 Extent Report 中显示 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)
{
...
}
}
您可以详细了解 getText
和 getAttribute
之间的区别。
下面的代码将获取名称或 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)
{
...
}
}
您的代码必须 return 空白!
我相信您混淆了名称作为属性和名称作为元素的名称。在您的情况下,输入框有一个名称作为属性,您可以使用它来查找元素,或者开发人员可以在用户点击提交按钮后使用它来解析数据。
如果 HTML 代码是这样的,您的代码 (getText()) 将具有 returned UserName
**UserName**
<input class="form_control w100p ffg big" type="text" name="USER_LOGIN" value="lpelet2@gmail.com" maxlength="255" placeholder="E-mail">
您肯定会在您的日志中找到 UserName。
专业项目中的大多数元素都应该有一个名称,但没有义务一定要有。因此,在框架级别承诺元素名称是不合理的。如果您想记录他们的名字,您可能需要在记录时进行一些过滤。
我想在 Extent Report 中显示 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)
{
...
}
}
您可以详细了解 getText
和 getAttribute
下面的代码将获取名称或 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)
{
...
}
}
您的代码必须 return 空白!
我相信您混淆了名称作为属性和名称作为元素的名称。在您的情况下,输入框有一个名称作为属性,您可以使用它来查找元素,或者开发人员可以在用户点击提交按钮后使用它来解析数据。
如果 HTML 代码是这样的,您的代码 (getText()) 将具有 returned UserName
**UserName**
<input class="form_control w100p ffg big" type="text" name="USER_LOGIN" value="lpelet2@gmail.com" maxlength="255" placeholder="E-mail">
您肯定会在您的日志中找到 UserName。
专业项目中的大多数元素都应该有一个名称,但没有义务一定要有。因此,在框架级别承诺元素名称是不合理的。如果您想记录他们的名字,您可能需要在记录时进行一些过滤。