我想在不使用xpath的情况下找到该元素,但我的页面上有另外的ul元素和“class = title”。所以,我也不能使用Type或“class = title”。
<div id="pai">
<div class="def">
<div class="abc" >
<p class=title>Title</p>
<ul>
<li></li>
我正在考虑下面的内容,但我不知道这是不是最好的做法:
WebElement um = driver.findElements(By.className("abc"));
WebElement dois = um.findElements(By.className("title"));
tamUl = dois.findElements(By.tagName("ul")).size();
答案 0 :(得分:0)
如果您不能或不愿意使用Xpath或CSS选择器,您希望获得页面上所有所需元素的列表。然后根据经验,通过调试或使用条件选择要使用的特定元素的索引。以下可能是您想尝试的情况:
List <WebElement> elements = driver.findElements(By.className("title"));
if (elements.size() > 0) {
elements.get(INDEX_OF_YOUR_ELEMENT).findElements(By.tagName("ul")).size();
}
注意findElement()和findElements()方法之间的区别。虽然如果找到多个匹配项,findElement()仅返回第一个元素,同时如果找不到任何内容则抛出NoSuchElementException,其中findElements()仅返回空列表。