gpt4 book ai didi

selenium - 使用 Selenium Web Driver 测试动态加载的内容

转载 作者:行者123 更新时间:2023-12-03 06:25:49 25 4
gpt4 key购买 nike

我正在开发一个具有基于 Web 的前端的系统,我正在使用 Selenium 对其进行测试。在一页上,向下滚动时会动态加载内容(也许您从 Facebook 的好友列表中知道这一点),因为这是要求之一。

通过 Javascript 使用 Selenium Webdriver 向下滚动(我使用 Chrome)应该没有问题。但是动态添加的内容有一个问题。如何让 Webdriver 找到这些元素?

我尝试了以下操作来向下滚动,直到不再加载任何内容:

int oldSize = 0;
int newSize = 0;
do {
driver.executeScript("window.scrollTo(0,document.body.scrollHeight)");
newSize = driver.findElementsBy(By.cssSelector("selector").size();
} while(newSize > oldSize);

但是,尽管页面第一次向下滚动并且现在某些内容已正确加载,但驱动程序的 findElementsBy(By) 函数将无法找到它们。

有人遇到过这个问题吗?如果有人能帮助我找到解决方案,我将非常高兴!

问候,本杰明

最佳答案

我建议将 WebDriverWait 与 ExpectedConditons 一起使用。

//scroll down with Javascript first
WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("selector")));
//interact with your element
element.click()

看看Selenium官方页面提供的指导: http://seleniumhq.org/docs/04_webdriver_advanced.html

关于selenium - 使用 Selenium Web Driver 测试动态加载的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12692172/

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