gpt4 book ai didi

javascript - CasperJS 无法点击 DIV 按钮

转载 作者:行者123 更新时间:2023-11-28 07:06:11 24 4
gpt4 key购买 nike

我一直在使用 CasperJS 开发一个网站抓取项目。这是一个 ASPX 网站。我可以登录该网站,然后填写运行搜索的表单,但填写表单后我无法模拟单击 DIV 按钮。搜索使用 AJAX 运行,但是当我在等待几秒钟后捕获页面时,它不会在捕获的图像中显示结果。 “搜索”按钮由 DIV 组成,单击它后会运行其他隐藏的 JavaScript 函数,这些函数发送 AJAX 请求以检索搜索结果。

这是我的代码。

var casper = require('casper').create({
clientScripts: ['js/jquery-1.11.3.min.js']
});

var x = require('casper').selectXPath;

casper.userAgent('Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 3.3.69573; WOW64; en-US)');

casper.start('https://example.com/finder.aspx');

casper.then(function () {
this.sendKeys('#UserName', 'xxxxx');
this.sendKeys('#Password', 'yyyyy');
console.log('Fill login credentials');
casper.capture("screen1.png");

this.thenClick('input[type=submit]');
});

casper.wait(3000, function () {
console.log('Login');
casper.capture("screen2.png");
});

casper.then(function () {
this.fill('form[name="searchForm"]', {
'$ddType': 'ABCD',
'$rbGender': '0',
}, true);
});

casper.wait(3000, function () {
this.sendKeys('#Type_I', 'ABCD');
this.sendKeys('#ProviderId', '1111111111');
this.sendKeys('#txtNameFirst', 'My');
this.sendKeys('#txtNameLast', 'Name');
this.sendKeys('#txtZipCode', '11111');
this.sendKeys('#txtBirthDate', '01/11/1987');
console.log('Form filled');
casper.capture("screen3.png");
});

casper.thenClick('#btnSubmit', function () {
console.log('Submitted');
});

casper.wait(3000, function () {
casper.capture("screen4.png");
});

这是需要单击的按钮 DIV。

<div id="btnSubmit" class="dxb">
<span>Submit</span>
</div>

screen4.png(与 screen3.png 相同)仅显示填充的搜索表单,但没有“正在加载..”消息(应该在单击提交时显示)或任何结果。如何触发表单提交?普通表单提交不会检索搜索结果。

<小时/>PS:我尝试了以下方法来触发 evaluate() 内的提交按钮。

在文本框中输入 press (实际上显示结果)

方法1

var e = jQuery.Event("keydown");
e.which = 13;
$("#txtZipCode").trigger(e);

方法2

this.sendKeys('#txtZipCode', casper.page.event.key.Enter, {keepFocus: true});

单击 DIV 按钮。

方法1

$('#btnSubmit div input').trigger('click');

方法2

$('#btnSubmit').click();

方法3

var mouse = require("mouse").create(casper);
this.mouse.click("#btnSubmit");

还是没有运气。

最佳答案

casper.then( 函数 () {
this.clickLabel('提交', 'span');
});

我遇到了类似的问题,这对我有用。

关于javascript - CasperJS 无法点击 DIV 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31697141/

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