在puppeteer中使用xpath选择下拉列表

时间:2018-05-26 12:03:41

标签: javascript xpath puppeteer

我想让木偶操纵者使用以下方式从下拉框中选择:

  

await page.select(selector,values);

我可以使用xpath搜索'values'参数吗?

以下是代码示例:

<select id="dropdown" >
 <option> No value selected </option>
 <option value = "0|XXA1|RandomString"> Option 1 </option>
 <option value = "0|XXA2|RandomString"> Option 2 </option>
 <option value = "0|XXA3|RandomString"> Option 3 </option>
</select>

从示例中,我想选择值包含“XXA1”的选项。

这是方式,我想如何获得选项。

  

等待page.select('#dropdown','// select [@ id =“dropdown”] //选项[包含(@value,“XXA1”)]');

puppeteer中的'values'可能无法替换为xpath参数。 CMIIW。 但我可以用另一种方式解决它吗?

任何帮助将不胜感激。非常感谢 ! :d

2 个答案:

答案 0 :(得分:0)

您可以使用xpath选择器方法,其名称不可使用$x

page.$x('//select[@id="dropdown"]//option[contains(@value , "XXA1")]')

答案 1 :(得分:0)

let optElementHandle = page.$x('//select[@id="dropdown"]//option[contains(text() , "XX")]')
let optValue = optElementHandle.getProperty('value');
await page.select(`#dropdown option[value='${optValue}']`)