在 Selenium WebDriver 中通过 Ajax/Javascript 临时阻止页面刷新?

S.O*_*O.S 5 javascript java ajax selenium selenium-webdriver

我正在Selenium用来抓取网页。最初,当您导航到该网页时,该页面包含大约 10 个项目。当您滚动到页面底部时,页面会不断加载更多项目(通过AJAX / Javascript),直到页面完全加载。页面完全加载后,我从列表中的每个项目中抓取数据。

有时,我需要从页面中删除一个项目。这会导致页面完全重新加载/刷新到最初的 10 个项目的原始状态 - 迫使我反复滚动到页面末尾,这非常耗时。换句话说,如果页面总共有 500 个项目,而我需要通过列表在不同(和未知)位置删除 50 个项目,我将需要重新加载大约 50 个的整个列表。500 项 50 次。

由于页面是通过重新加载的,ajax / js我认为我可以通过禁用Javscript此特定页面来解决此问题。我能够通过遵循这个答案来完成这个在 stackoverflow 上。但是,这是第 22 种情况 - 因为一旦我禁用javascript页面,当我滚动到底部时将不再加载新项目。我需要首先加载页面上的所有项目Javascript,然后禁用,js以便在删除项目时页面不会自动刷新。

最初,我以为我可以滚动到页面末尾(虽然有 js启用),然后js在到达页面底部后禁用,这样当我循环浏览页面上的项目并删除项目时,页面不会被强制刷新。但是,根据我的测试,我发现js在页面加载之前启用一次,在导航到其他页面之前无法再禁用它。

我的问题是:有没有办法Javascript在页面加载后暂时阻止(或禁用)执行,以便页面不会刷新(但仍然允许我通过 滚动到页面末尾js)?