Java 如何检索列表中的所有嵌套类名<;WebElement>;硒的含量?

Java 如何检索列表中的所有嵌套类名<;WebElement>;硒的含量?,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,如何检索父类的所有嵌套类 我想知道班级名称(祝酒成功和祝酒信息)。我可以使用稳定的id=toast容器,但其嵌套类可以更改。所以需要检索toast容器的所有类 您可以通过使用xpath来实现这一点。有几种方法可以做到这一点,这里有两个例子。我使用C#,但这不会改变XPath。不过,我的骆驼壳可能会因java而脱落 例1: var elements = driver.findElements(by.xpath("//div[@id='toast-container']//*")); 这将为您提

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


我想知道班级名称(祝酒成功和祝酒信息)。我可以使用稳定的id=toast容器,但其嵌套类可以更改。所以需要检索toast容器的所有类

您可以通过使用xpath来实现这一点。有几种方法可以做到这一点,这里有两个例子。我使用C#,但这不会改变XPath。不过,我的骆驼壳可能会因java而脱落

例1:

 var elements = driver.findElements(by.xpath("//div[@id='toast-container']//*"));
这将为您提供div中id为toast容器的所有元素

例2:

 var el = driver.findElement(by.id("toast-container"));
 var elements = el.findElements(by.xpath("//*"));
第二个示例与第一个示例相同,但首先创建toast容器元素,以便从那时起可以使用它执行任何操作

一旦有了元素列表,就创建一个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
       }
}

最简单的方法是只获取父元素的
outerHTML

 String html = driver.findElement(By.id("toast-container")).getAttribute("outerHTML");

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

请阅读为什么有一个类。考虑使用格式化的基于文本的HTML、代码试验和错误堆栈跟踪更新问题。@ DEBANJANB感谢通知。但是这个HTML代码只存在1秒,并且不能在这个持续时间内复制它。这并不能回答这个问题。OP专门询问如何检索所有嵌套类,而您指向外部HTML并询问OP
您可以得到您想要的任何东西
@DebanjanB我想这是一件好事,您不会报复我的投票。。。我说过,
我假设您不只是想要类,而是想知道所有元素都存在什么,以及哪些元素上有什么类。