为什么 Puppeteer 不能点击这个按钮?
Why Puppeteer couldn't click this button?
我在 Puppeteer 中写了一个脚本来抓取这个网站“https://jobs.abb.com/jobsearch/”。它有一个名为 "More" 的按钮来显示所有职位发布。其实就是一个list()。我无法从我的 Puppeteer 脚本中单击 "More"。
这是为什么?
我怎样才能点击它?
有什么办法吗?
let URL = "https://jobs.abb.com/jobsearch/?sap-language=EN#";
// Open the above URL in a browser's new page
const ping = async () => {
const browser = await puppeteer.launch({ headless: false, args:['--start-maximized' ] });
const page = await browser.newPage();
await page.setViewport({ width: 1366, height: 768 });
await page.setDefaultNavigationTimeout(0);
await page.goto(URL, { waitUntil: "load" });
// Method - 1
await page
.waitForSelector("#__component0---map_search--tableJobs-trigger")
.then(() => console.log("Selector found"));
await page
.$eval("#__component0---map_search--tableJobs-trigger", e => e.click())
.then(console.log("Clicked"))
.catch(err => console.log(err));
// Method - 2
await page.waitForSelector("#__component0---map_search--tableJobs-trigger");
await page.click("#__component0---map_search--tableJobs-trigger");
}
ping();
Method - 1, didn't create any error at the same time it didn't click the button too.
...
Method - 2, it produced an error "Error: Node is either not visible or not an HTMLElement"
有没有办法抓取像这样的页面“https://jobs.abb.com/jobsearch/?sap-language=EN#”?
Note: I think it is been connected with SAP UI
我不确定为什么正常的 page.click(selector) 或 eval(selector, e => e.click) 不适用于 ui5 按钮,但以下内容对我有用:
editButton = await page.waitForSelector("#__button87");
await editButton.click();
人偶版本:5.3.1
我在 Puppeteer 中写了一个脚本来抓取这个网站“https://jobs.abb.com/jobsearch/”。它有一个名为 "More" 的按钮来显示所有职位发布。其实就是一个list()。我无法从我的 Puppeteer 脚本中单击 "More"。
这是为什么? 我怎样才能点击它? 有什么办法吗?
let URL = "https://jobs.abb.com/jobsearch/?sap-language=EN#";
// Open the above URL in a browser's new page
const ping = async () => {
const browser = await puppeteer.launch({ headless: false, args:['--start-maximized' ] });
const page = await browser.newPage();
await page.setViewport({ width: 1366, height: 768 });
await page.setDefaultNavigationTimeout(0);
await page.goto(URL, { waitUntil: "load" });
// Method - 1
await page
.waitForSelector("#__component0---map_search--tableJobs-trigger")
.then(() => console.log("Selector found"));
await page
.$eval("#__component0---map_search--tableJobs-trigger", e => e.click())
.then(console.log("Clicked"))
.catch(err => console.log(err));
// Method - 2
await page.waitForSelector("#__component0---map_search--tableJobs-trigger");
await page.click("#__component0---map_search--tableJobs-trigger");
}
ping();
Method - 1, didn't create any error at the same time it didn't click the button too.
...
Method - 2, it produced an error "Error: Node is either not visible or not an HTMLElement"
有没有办法抓取像这样的页面“https://jobs.abb.com/jobsearch/?sap-language=EN#”?
Note: I think it is been connected with SAP UI
我不确定为什么正常的 page.click(selector) 或 eval(selector, e => e.click) 不适用于 ui5 按钮,但以下内容对我有用:
editButton = await page.waitForSelector("#__button87");
await editButton.click();
人偶版本:5.3.1