如何检索Selenium的列表<webelement>中的所有嵌套类名?

时间:2018-03-28 06:54:02

标签: java selenium selenium-webdriver

HTML Code

如何检索父类的所有嵌套类?

我想获得课程名称(吐司吐司成功和吐司消息)。我可以有稳定的id = toast-container,但它的嵌套类可以更改。所以需要检索所有类的toast-container。

2 个答案:

答案 0 :(得分:1)

您可以使用xpath执行此操作。有几种方法可以做到这一点,这里有两个例子。我使用C#,但这并没有改变x路径。对于java来说,我的骆驼外壳可能已关闭。

示例1:

 var elements = driver.findElements(by.xpath("//div[@id='toast-container']//*"));

这将为div中的所有元素提供id toast-container。

示例2:

 var el = driver.findElement(by.id("toast-container"));
 var elements = el.findElements(by.xpath("//*"));

秒示例与第一个示例相同,但您首先创建toast-container元素,以便您可以从该点开始执行任何操作。

获得元素列表后,进行foreach循环并检查类名。所以你可以说:

foreach(WebElement element in elements)
{
    try{
         var className = element.getAttribute("class");
       }
    catch(Exception e)
       {
         //do whatever you want to do with elements which have no class in them
       }
}

答案 1 :(得分:-1)

最简单的方法是获取父元素的purrr::walk2(names(exlist),exlist,assign,pos = 1)

outerHTML

这将转储父和子的所有HTML。从那里你可以得到你想要的任何东西。我假设您不仅仅想要这些类,而且想知道所有元素的存在以及哪些类在哪些元素上。