puppeeter选择引导选择选项不是val

时间:2018-12-14 13:02:53

标签: puppeteer bootstrap-select

我会自由地承认,我在伪装者中挣扎。我正在使用bootstrap-select jquery插件进行下拉菜单。这是一个Jsfiddle的示例 http://jsfiddle.net/9xr5af00/ 我尝试过多种开玩笑的方式-操纵up单击下拉菜单,然后单击下拉菜单上的元素。

(不确定如何将puppeteer连同示例放到jsfiddle中)。
puppeteer的所有示例似乎都表明我需要使用val html标记,但是bootstrap-select仅使用option标记。

这是我尝试过的许多事情之一

await page.click('#client-picker')
let value = "A"
await page.select('#client-picker',value)

但是,延迟似乎使操纵up的人实际上并没有向下滚动列表。我想这是正确的,因为它只是试图对元素进行选择。我该如何让操纵up滚动条目的列表?

1 个答案:

答案 0 :(得分:1)

它会创建div元素,您需要单击带有data-id="client-picker"的按钮,选择父元素,然后选择与该值匹配的li a元素。

await page.evaluate(() => {
  let value = "A"
  let clientPicker = document.querySelector('button[data-id="client-picker"]')
  clientPicker.click();
  let listOption = clientPicker.parentNode.querySelectorAll('li a')
  Array.from(listOption).find(item => item.textContent == value).click()
});