在Selenium WebDriver中暂时阻止通过Ajax/Javascript刷新页面?
我正在用在Selenium WebDriver中暂时阻止通过Ajax/Javascript刷新页面?,javascript,java,ajax,selenium,selenium-webdriver,Javascript,Java,Ajax,Selenium,Selenium Webdriver,我正在用Selenium刮网页。最初,当您导航到该网页时,该网页包含大约10个项目。当您滚动到页面底部时,页面会不断加载更多项目(通过AJAX/Javascript),直到页面完全加载完毕。一旦页面完全加载,我将从列表中的每个项目中提取数据 有时,我需要从页面中删除一个项目。这会导致页面完全重新加载/刷新到最初的10个项目的原始状态,迫使我反复滚动到页面末尾,这非常耗时。换句话说,如果页面总共有500个项目,我需要通过列表删除不同(未知)位置的50个项目,我将需要50次重新加载大约500个项目的
Selenium
刮网页。最初,当您导航到该网页时,该网页包含大约10个项目。当您滚动到页面底部时,页面会不断加载更多项目(通过AJAX/Javascript
),直到页面完全加载完毕。一旦页面完全加载,我将从列表中的每个项目中提取数据
有时,我需要从页面中删除一个项目。这会导致页面完全重新加载/刷新到最初的10个项目的原始状态,迫使我反复滚动到页面末尾,这非常耗时。换句话说,如果页面总共有500个项目,我需要通过列表删除不同(未知)位置的50个项目,我将需要50次重新加载大约500个项目的整个列表
由于页面是通过ajax/js
重新加载的,我想我可以通过在这个特定页面上禁用Javscript
来解决这个问题。我通过遵循stackoverflow实现了这一点。然而,这是一个“第22条军规”——因为一旦我禁用javascript
,当我滚动到底部时,页面将不再加载新项目。我需要首先通过Javascript
加载页面上的所有项目,然后禁用js
,这样页面在删除项目时不会自动刷新
起初,我认为我可以滚动到页面的末尾(havejs
处于启用状态),然后在点击页面底部后禁用js
,这样当我循环浏览页面上的项目并删除项目时,页面将不会被强制刷新。然而,根据我的测试,我发现一旦在页面加载之前启用了js
,在您导航到其他页面之前就不能再禁用它
我的问题是:有没有办法在页面加载后临时阻止(或禁用)
Javascript
执行,这样页面就不会被刷新(但仍然允许我通过js
滚动到页面末尾)?只想检查一下,为什么不能通过忽略不需要的项来废弃所有需要的项。@supputuri基本上,该列表只允许我维护最大数量的项。当一个项目不再需要时,它会占用列表中的空间,我需要将其删除以释放其他项目的空间。情况也是如此,如果在页面加载后禁用js,那么即使删除了项目,列表也不会更新。该列表应与任何一种方法相同。