gpt4 book ai didi

javascript - 无法使用 Nightwatchjs 从网页获取值

转载 作者:行者123 更新时间:2023-12-02 14:26:07 25 4
gpt4 key购买 nike

使用最新版本的网络驱动程序和 nightwatchjs。

使用下面的代码,我从来没有在gotTags中得到任何东西。如果我在以下范围内设置断点:

browser.elementIdText(element, function (result) {
gotTags.push(result.value);
console.log(result.value);
});

它永远不会破裂。

我知道查询有效并返回 10 个元素:

document.querySelector('iframe[src="about:blank"]').contentDocument.querySelectorAll('.gtm-debug-tags-fired-container .gtm-debug-tags-card-title')

代码:

browser
.url(config.url)
.waitForElementPresent('body', 5000)
.waitForElementPresent('iframe[src="about:blank"]', 10000)
.execute(function(){
return document.querySelector('iframe[src="about:blank"]').contentDocument.querySelectorAll('.gtm-debug-tags-fired-container .gtm-debug-tags-card-title')
}, function(elems){
var element;

for (var i = 0; i < elems.value.length; i++) {
element = elems.value[i].ELEMENT;

browser.elementIdText(element, function (result) {
gotTags.push(result.value);
console.log(result.value);
});
}

最佳答案

文档 http://nightwatchjs.org/api#execute说,您缺少第二个(或目前的第三个)参数。

function(elems){
var element;

for (var i = 0; i < elems.value.length; i++) {
element = elems.value[i].ELEMENT;

browser.elementIdText(element, function (result) {
gotTags.push(result.value);
console.log(result.value);
});
}

这部分必须是第三个参数,因为第二个参数是第一个参数中函数的 args 参数。

所以,我认为它一定是这样的

.execute(function(){
return document.querySelector('iframe[src="about:blank"]').contentDocument.querySelectorAll('.gtm-debug-tags-fired-container .gtm-debug-tags-card-title')
}, [], function(elems){ // added [] here as second parameter
var element;

for (var i = 0; i < elems.value.length; i++) {
element = elems.value[i].ELEMENT;

browser.elementIdText(element, function (result) {
gotTags.push(result.value);
console.log(result.value);
});
}

关于javascript - 无法使用 Nightwatchjs 从网页获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38226043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com