gpt4 book ai didi

javascript - 如何在 phantomjs 中等待元素可见性

转载 作者:行者123 更新时间:2023-12-03 21:35:55 26 4
gpt4 key购买 nike

用户点击此链接:

<span onclick="slow_function_that_fills_the_panel(); $('#panel').show();">

现在我正在模拟 phantomjs 中的点击:

page.evaluate(
function() { $("#panel").click(); }
);
console.log('SUCCESS');
phantom.exit();

Phantom 在慢速函数结束执行并且 DIV 变得可见之前退出。如何实现等待?

最佳答案

以下是 Cyber​​maxs 的回答:

function waitFor ($config) {
$config._start = $config._start || new Date();

if ($config.timeout && new Date - $config._start > $config.timeout) {
if ($config.error) $config.error();
if ($config.debug) console.log('timedout ' + (new Date - $config._start) + 'ms');
return;
}

if ($config.check()) {
if ($config.debug) console.log('success ' + (new Date - $config._start) + 'ms');
return $config.success();
}

setTimeout(waitFor, $config.interval || 0, $config);
}

使用示例:

waitFor({
debug: true, // optional
interval: 0, // optional
timeout: 1000, // optional
check: function () {
return page.evaluate(function() {
return $('#thediv').is(':visible');
});
},
success: function () {
// we have what we want
},
error: function () {} // optional
});

使用配置变量会更容易一些。

关于javascript - 如何在 phantomjs 中等待元素可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16807212/

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