javascript - CasperjJs找不到变量:获取
问题描述
我正在编写一个简单的脚本,登录网站然后转到另一个页面并单击按钮。好像可以找到按钮,但是点击后出现错误:
页面错误:ReferenceError:找不到变量:获取
我该如何解决这个问题?
var casper = require('casper').create({
verbose: true,
logLevel: 'debug',
pageSettings: {
loadImages: false, // The WebPage instance used by Casper will
loadPlugins: false, // use these settings
userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4'
}
});
//print out all the messages in the headless browser context
casper.on('remote.message', function(msg) {
this.echo('remote message caught: ' + msg);
});
// print out all the messages in the headless browser context
casper.on("page.error", function(msg, trace) {
this.echo("Page Error: " + msg, "ERROR");
});
casper.on('resource.error', function(msg) {
this.echo('resource.error caught: ' + msg);
});
var url = 'https://firstPage.com';
casper.start(url, function() {
this.evaluate(function() {
document.getElementById("login").value = "name@email.com";
document.getElementById("password").value = "pass";
document.querySelector("loginButton").click();
});
});
casper.thenOpen('https://secondPage.com', function() {
console.log("Page Title " + document.title);
});
casper.waitForSelector('[data-content~="OK"]', function() {
this.click('[data-content~="OK"]');
})
解决方案
fetch
不会显示为您在脚本上调用的变量或 DOM 元素,这很奇怪,但在这一行中,我假设您正在调用class
loginButton
document.querySelector("loginButton").click();
如果它是一个类,您应该放置.
(或者#
如果它是一个 ID),否则它将寻找一个不存在的 loginButton 元素。尝试:
document.querySelector(".loginButton").click();
推荐阅读
- sql - 使用子查询进行 SQL 更新
- android - 如何更改工具栏上项目的颜色
- javascript - 使用在线编辑器运行 P5.play 的问题
- docker - 为什么 Docker exec 需要 --interactive?--tty 应该够了吧?
- neo4j - 我可以使用 CSV 在 Neo4j 中导入我的主键吗
- javascript - 如何在 React 的 componentDidMount 中调用 geoLocation
- html - 如何使按钮居中和底部
- python - 检查python中是否存在记录。如果存在则跳过其他过程
- python - 使用 svm 算法检测对象时出错
- docker - 容器启动时应用程序错误地解析 Docker 别名