Основываясь на комментариях, я добавил «Ждать» и «Прокрутить вниз», и код может
- Переход в Google,
- Поиск имени
- Подождите, пока загрузится поисковая страница, дождитесь прокрутки вниз, дождитесь следующего пролета, чтобы щелкнуть ()
const { Builder, By, Key, until } = require('selenium-webdriver');
require('geckodriver');
const faker = require('faker');
const searchGoogle = async () => {
let name = faker.name.findName();
let driver = await new Builder().forBrowser('firefox').build();
try {
await driver
.manage()
.window()
.maximize();
await driver.manage().deleteAllCookies();
await driver.get('https://www.google.com/');
await driver.findElement(By.name('q')).sendKeys(name, Key.RETURN);
await driver.wait(() => {
until.titleIs(`${name} - Google Search`);
driver.executeScript('window.scrollTo(0, document.body.scrollHeight)');
driver.findElement(By.xpath("//span[contains(text(), 'Next')]")).click();
}, 1000);
} catch (err) {
console.error(err);
} finally {
// driver.quit();
console.log('complete!');
}
};
searchGoogle();
Однако, вместо того, чтобы просто щелкнуть следующий раз на второй странице, страница идет на третью страницу. Я не могу понять причину этого. В документации Selenium-webdriver не очень ясно, как использовать «.wait».