JavaScript - 找不到滚动方法



在页面上https://www.ameublement.com/showroom,我去了每个品牌,但在5-7个品牌之后,脚本无法继续,因为它需要滚动页面。这就是错误:

ElementClickInterceptedError:元素点击被拦截:元素在点(389539(不可点击。其他元素将接收点击:<跨度

这是我的代码:

let swd = require("selenium-webdriver");
let browser = new swd.Builder();
let tab = browser.setChromeOptions().forBrowser("chrome").build();
async function main() {
await tab.get("https://www.ameublement.com/showroom");
// PAGE BRAND
let brands = await tab.findElements(
swd.By.css(".col-6.col-lg-12.card-img")
);
for (let e of brands) {
console.log('go to page of a brand')
await e.click()
tab.sleep(300);
// GO BACK
tab.navigate().back()
// await tab.executeScript("arguments[0].scrollIntoView();", e);
// tab.getElementByClassName(e).scrollIntoView();
};
}

我试过了:

// await tab.executeScript("arguments[0].scrollIntoView();", e);

然后我尝试了:

// tab.getElementByClassName(e).scrollIntoView();

第二个抛出这个错误:

TypeError:tab.getElementByClassName不是函数

这是因为tab是ThenableWebDriver的一个实例,它没有这样的功能。请参阅文档链接。

相反,您可以使用简单的javascript进行滚动,例如

await tab.executeScript("window.scrollBy(0,1000)");

最新更新