【问题标题】:How to get css class name using Selenium?如何使用 Selenium 获取 css 类名?
【发布时间】:2011-12-04 13:19:33
【问题描述】:

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

<table >
<tr class="odd"><td>Odd row</td></tr>
<tr class="even"><td>Even row</td></tr>
<tr class="odd"><td>Odd row2</td></tr>
<tr class="even"><td>Even row2</td></tr>       
</table>

有没有办法使用 selenium 获取类名“奇数”或“偶数”?我

【问题讨论】:

    标签: java selenium css-selectors


    【解决方案1】:

    WebElement 你可以像这样使用getAttribute 方法:

    element.getAttribute("class")
    

    【讨论】:

      【解决方案2】:

      是的,您可以使用getAttribute(attributeLocator) 函数来满足您的要求。

       selenium.getAttribute(//xpath@class);
      

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

      谢谢。

      【讨论】:

        【解决方案3】:

        没有什么依赖于eclipse或者java,其实更多的是位置策略。 如果您想访问带有/不带有 css 类的特定 tr 元素,您可以使用 css定位器:

        css=tr:nth(indx_base_0)

        类的第n行

        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]
        

        这里有一些useful examples

        【讨论】:

          【解决方案4】:

          在代码 sn-p 的上下文中,假设您想要获取表中第一行的“奇数”类。
          您可以按照以下步骤操作:
          (注意:- 假设您的网页中有一个表格)

          1- 先获取元素:

          WebElement ele = driver.findElement(By.xpath("//table/tr[1]"));
          上面的代码使用 xpath 来获取元素,即表格的第一行。

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

          String class_name = ele.getAttribute("class");
          上述代码将获取相关元素的“类”名称并将其分配给字符串变量“class_name”以供进一步使用

          同样,为了获得“偶数”类,也就是表格第四行的属性,你可以使用下面的代码:

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

          【讨论】:

            【解决方案5】:

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

            【讨论】:

              【解决方案6】:

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

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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2011-11-04
                • 1970-01-01
                • 2021-03-13
                • 1970-01-01
                • 2017-02-02
                • 1970-01-01
                • 2021-08-19
                • 1970-01-01
                相关资源
                最近更新 更多