gpt4 book ai didi

java - 将子元素添加到 Selenium 的 html 中后,在页面对象中找不到子元素

转载 作者:行者123 更新时间:2023-11-30 03:13:44 25 4
gpt4 key购买 nike

我的程序中有一个循环,在每次迭代中打印这样的结构:

<div class="grand-father">
<div class = "father">
<myTag>1</myTag>
<button>show more</button>
</div>
</div>

但是单击按钮后结构更改为:

<div class="grand-father">
<div class = "father">
<myTag>1</myTag>
<myTag>2</myTag>
<myTag>3</myTag>
</div>
</div>

因此,在我对页面对象模型的测试中,我尝试通过执行以下操作来评估每个“祖父”元素中的每个 myTag 元素:

List<WebElement> grandFathers = driver.findElements(By.xpath("//div[@class='grand-father']"));
for(WebElement gf : grandFathers){
//**Click the button of this father element to show more**
List<WebElement> myTagElements = gf.findElements(By.xpath(".//div[@class='father']/myTag"));
System.out.println(myTagElements.size());
}

我的问题是 myTag 元素的最后一个 findElements 似乎没有找到按下“显示更多”按钮之前不存在的所有元素:( 即使所有元素都在,它也只计算一个元素已经显示:/

有没有办法告诉selenium根据我们第一次获取元素时不存在的新html更改来“更新”变量? (因为我认为问题可能出在那个)

如果有人能提供帮助,谢谢!

最佳答案

看起来您可能已经有了答案,但对于 future 的读者,我会做这样的事情......

获取带有grand-father类的所有DIV并循环遍历它们寻找子BUTTON。单击BUTTON,然后计算myTag

List<WebElement> gfs = driver.findElements(By.cssSelector("div.grand-father"));
for (WebElement gf : gfs)
{
gf.findElement(By.tagName("button")).click();
System.out.println(gf.findElements(By.tagName("myTag")).size());
}

关于java - 将子元素添加到 Selenium 的 html 中后,在页面对象中找不到子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33114997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com