Javascript 硒+;Chromedriver:无法从PerformanceObserver对象检索结果

Javascript 硒+;Chromedriver:无法从PerformanceObserver对象检索结果,javascript,selenium,selenium-chromedriver,performance-testing,web-testing,Javascript,Selenium,Selenium Chromedriver,Performance Testing,Web Testing,我尝试通过Chromedriver(V77.0.3865.40)调用Selenium executeScript函数,在该函数中我要检索PerformanceObserver对象 在JS中,接下来我初始化了驱动程序,称为成功的网页,我启动了以下代码: let result = await driver.executeScript( "const r = function() {"+ "let lcp;"+ "const po = new Perfo

我尝试通过Chromedriver(V77.0.3865.40)调用Selenium executeScript函数,在该函数中我要检索PerformanceObserver对象

在JS中,接下来我初始化了驱动程序,称为成功的网页,我启动了以下代码:

let result = await driver.executeScript(
        "const r = function() {"+
        "let lcp;"+
        "const po = new PerformanceObserver((eList) => {"+
        "const e = eList.getEntries();"+
        "const last = e[e.length - 1];"+
        "lcp = last.renderTime || last.loadTime;"+
        "});"+
        "po.observe({type: 'largest-contentful-paint', buffered: true});"+
        "return lcp;};"+
        "return r();"
        );
    console.log("LCP : ",result);
但结果总是空的

我的函数调用中有问题吗?或者铬驱动的电流限制


感谢您的支持。

如果要从回调返回lcp,您肯定需要executeAsyncScript。同样的问题,使用puppeter evaluate命令:console.log(wait page.evaluate(()=>{let lcp;const po=new PerformanceObserver((eList)=>{const e=eList.getEntries();const last=e[e.length-1];lcp=last.renderTime | | last.loadTime;});po.observe({type:'maximust contentful paint',buffered:true});返回lcp;});使用executeAsyncScript可以在回调中执行
参数[0](lcp)
。参数[0]是将lcp oblect返回到脚本上下文的回调。带有参数[0](lcp)的解决方案工作正常。谢谢好的,太好了:)