我正在使用 nightmare.js v2 登录并最终从网站上为许多不同的用户下载pdf。 有一个下拉菜单供用户选择特定的年份,然后在用户单击所需的选择元素的选项后,假设
<option value="6" title="2016">2016</option>
页面上显示该特定年份的pdf列表,而不会更改网址。
当我使用.select(selector, option)
使用nightmare.js进行操作时
选项更改。您可以在页面上直观地看到年份的变化,但是该年份的PDF列表没有出现。
我猜这个列表的外观与鼠标单击触发的事件有关,
但在噩梦中,.click()
方法在下拉菜单选择元素的第一个位置或包含该元素的div中不起作用。都不是.mousedown()
方法。
我想知道是否存在解决这个问题的噩梦方法。
这是代码。目前,我只需要页面的innerText:
const Nightmare = require('nightmare');
const nightmare = Nightmare({ show: true });
nightmare
.goto('url')
.type('input[name="username"]', 'username')
.type('input[name="password"]', 'password')
.click('input[type="submit"][value = "OK"]')
.wait(3000)
.select('[name="yearSelect"][title="2020"]', '9')
.wait(3000)
.evaluate(() => document.querySelector('body').innerText)
.end()
.then(console.log)
.catch(error => {
console.error('Search failed:', error)
});