【问题标题】:How to get web element name?如何获取网络元素名称?
【发布时间】:2018-12-23 19:04:59
【问题描述】:

我想在范围报告中显示 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)
     {
        ...
     }
}

【问题讨论】:

    标签: selenium junit extentreports


    【解决方案1】:

    您可以详细了解getTextgetAttribute here 之间的区别。
    下面的代码将获取名称或 ID:

    String nameOrId = weElem.getAttribute("name") == null ? weElem.getAttribute("name") : weElem.getAttribute("id");
    if (name == null)
       name = "uknown";
    

    并非所有元素都有 id 或 name,您会使用 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)
         {
            ...
         }
    }
    

    【讨论】:

    • 我的一些 WebElemnts 有一个 ID,其中一些有一个名字我怎样才能巧妙地显示它们?我想向我的函数发送 web 元素和元素名称,这是一个好想法还是您有其他建议?
    【解决方案2】:

    您的代码必须返回空白!

    我相信您将 name 作为属性和 name 作为元素的名称混淆了。在您的情况下,输入框有一个名称作为属性,您可以使用它来查找元素,或者一旦用户点击提交按钮,开发人员可以使用它来解析数据。

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

    您的日志中肯定会有用户名。

    专业项目中的大多数元素都应该有一个名称,但没有义务拥有它。因此,在框架级别上承诺元素名称是不合理的。如果您想记录他们的姓名,您可能需要在记录时进行一些过滤。

    【讨论】:

      猜你喜欢
      • 2015-03-14
      • 1970-01-01
      • 2015-03-28
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多