По сути, мне нужна помощь в проверке страницу и найти HTML-элемент кнопки входа в систему. Пожалуйста, скопируйте и вставьте элемент вместе со снимком экрана в проверке. Большое вам спасибо.
(Я пытаюсь создать инструмент для редактирования треков для игры)
p>
Когда я набираю команду «node script.js»
КОД НИЖЕ:
Код: Выделить всё
const puppeteer = require('puppeteer');
(async () => {
let browser;
let page;
try {
// Launch the browser
browser = await puppeteer.launch({
headless: true,
args: ['--no-sandbox', '--disable-setuid-sandbox'], // Required for environments like Codespaces
});
// Open a new page
page = await browser.newPage();
// Navigate to the FreeriderHD website
console.log('Navigating to FreeriderHD...');
await page.goto('https://www.freeriderhd.com', { waitUntil: 'networkidle2' });
// Wait for the login button to be visible
console.log('Waiting for the login button...');
await page.waitForSelector('#left-nav-login', { visible: true });
// Wait for any loading overlays to disappear (if applicable)
await page.waitForSelector('.loading-overlay', { hidden: true }).catch(() => {});
// Scroll into view and focus on the button
await page.evaluate(() => {
const loginButton = document.querySelector('#left-nav-login');
if (loginButton) {
loginButton.scrollIntoView();
loginButton.focus();
}
});
// Wait for the button to be fully loaded and clickable
await page.waitForFunction(() => {
const loginButton = document.querySelector('#left-nav-login');
return loginButton && loginButton.offsetParent !== null && !loginButton.disabled; // Check if the button is visible and not disabled
});
// Click the login button with a delay
console.log('Clicking the login button...');
await page.click('#left-nav-login', { delay: 100 });
// Wait for the login form to load
console.log('Waiting for the login form...');
await page.waitForSelector('#login_password', { visible: true });
// Enter the username and password
console.log('Entering credentials...');
await page.type('input[name="username"]', 'username'); // Enter username
await page.type('#login_password', 'password'); // Enter password
// Click the login submit button
console.log('Submitting the login form...');
await page.waitForSelector('.auth-btn[data-action="login_with_email"]', { visible: true });
await page.click('.auth-btn[data-action="login_with_email"]');
// Wait for navigation after login
console.log('Waiting for login process...');
await page.waitForNavigation({ waitUntil: 'networkidle2' });
console.log('Login successful!');
} catch (error) {
console.error('Error:', error);
// Take a screenshot for debugging
if (page) {
await page.screenshot({ path: 'error-debug.png' });
console.log('Screenshot saved as error-debug.png');
}
// Close the browser in case of error
if (browser) {
await browser.close();
}
} finally {
// Ensure the browser is closed in case of success or error
if (browser) {
await browser.close();
}
}
})();
Подробнее здесь: https://stackoverflow.com/questions/793 ... tmlelement
Мобильная версия