.nightmare.js的.select(selector,option)方法不会触发事件

时间:2019-12-03 20:24:27

标签: javascript select drop-down-menu single-page-application nightmare

我正在使用 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)
      });

0 个答案:

没有答案