我试图在Puppeteer的评估函数中使用XPath和外部变量,但是有一个问题:
我刚得到这个错误:
UnhandledPromiseRejectionWarning:TypeError:转换循环 构造为JSON ->从具有构造函数'BrowserContext'的对象开始 |属性'_browser'->具有构造函数'Browser'的对象 ---属性'_defaultContext'闭合了圆圈您是否正在传递嵌套的JSHandle? 在JSON.stringify()
这是我的代码(您可以忽略较长的XPath选择器):
let lastNameIn = await page.$x('//*[contains(translate(@placeholder,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ"), "LAST") and contains(translate(@placeholder,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ"), "NAME"))]')
lastname = "test"
await page.evaluate((lastname, lastNameIn) => {
el => el.value = lastname, lastNameIn[0]
}, lastname, lastNameIn)
答案 0 :(得分:0)
您应该只为el.value
分配一个值,然后在第一个参数位置lastNameIn[0]
上标记要评估的元素,作为第二个参数,您可以添加依赖变量:{{1 }}到lastName
。
请参阅:page.evaluate
,pageFunction
。
page.evaluate(pageFunction[, ...args])