gpt4 book ai didi

javascript - CasperJS - 使用 fill()、evaluate() 和 sendKeys()

转载 作者:行者123 更新时间:2023-11-28 18:50:31 25 4
gpt4 key购买 nike

我正在学习 CasperJS,并且能够使用 fill() 登录网站,但无法使用 this.evaluate()this.sendKeys()

我对 this.evaluate()this.sendKeys() 做错了什么?

这有效:

casper.then(function() {    
this.fill('form[class="login-form"]', {
'session_key': 'username',
'session_password': 'password'
}, true);
});

但是,这些都没有:

casper.then(function() {
this.evaluate(function(username, password) {
document.querySelector('input#login-email').value = username;
document.querySelector('input#login-password').value = password;
document.querySelector('input[value="Sign in"]').click();
}, 'username', 'password');
})

casper.then(function() {
this.sendKeys('input#login-email', 'username');
this.sendKeys('input#login-password', 'password');
this.click('input[value="Sign in"]')
})

最佳答案

由于您的问题比具体问题更笼统,我会尝试以同样的方式回答。

fill 和 fillSelectors 用于快速填写简单的表单。

如果您有大量 javascript 网站,并且事件在操作上触发,那么您可以使用 SendKeys,它将尝试在事件发生时触发这些事件。

最后,如果 SendKeys 不能完成这项工作,您始终可以手动评估并触发这些事件。如果您打开浏览器控制台并检查要对其执行操作的元素,您将看到附加到它们的事件。从那里,您可以看到它们是 DOM 事件还是 JQuery 事件,因此您可以相应地使用 document.querySelector 或 $ 。在编写任何代码之前,请知道,如果您跳转到浏览器 JavaScript 控制台,您在那里执行的任何代码都将是您最终在评估范围内获得的代码;您可以在将代码应用到脚本之前在浏览器中快速测试代码。

我没有详细介绍,我只是根据我的个人经验浏览了“fill()、evaluate()、sendKeys()”的表面,但为了具体回答你的问题,我们没有页面 HTML,所以它很难说。 SendKeys 无法工作但无法评估的原因有很多。在您的评估范围中,选择器可能错误或缺少事件。

最后,正如 Artjom 提到的,对于点击,最好使用 casper.click(selector)

关于javascript - CasperJS - 使用 fill()、evaluate() 和 sendKeys(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34551890/

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