gpt4 book ai didi

javascript - 填写非文本类型的输入字段,并在 CasperJS 中触发事件

转载 作者:行者123 更新时间:2023-12-03 08:19:53 25 4
gpt4 key购买 nike

我要在一个网站上做自动化测试,我想用CasperJS来学习。由于专有原因我不能给出太多代码。

这是我尝试填充的输入示例:

<input data-bind="value: firstname, valueUpdate: ['blur'], css: {valid:(firstname.isValid() )} " title="" class="valid" aria-required="true" id="firstname" name="firstname">

如您所见,此输入不是文本类型,并且没有 value 属性。因此,我无法使用 casper.fill() 方法。此外,如果我使用 evaluate() 输入网页范围并使用 document.querySelector 更改输入值,则从附加到输入上的文本更改不会被触发。

这是我的代码:

this.waitForSelector('#memberTitle', function then(){
var testname = 'thisIsNotPermanent';
this.evaluate(function(testname){
document.querySelector('#firstname').value = testname;
}, testname);
});

如果我立即捕获屏幕,我将看到输入框中写入的文本。但是,如果我等待 500 毫秒并进行另一次捕获,文本就会消失,因为我认为事件被触发或只是被清除,因为它实际上未能正确触发。

附加到输入的事件是模糊、更改和按键。

使用 CasperJS,我怎样才能尽可能地模仿用户使用键盘并充分使用网站已有的功能?

这些测试的重点是配合现有的情况。这个想法是不必手动浏览网站的 JavaScript。

最佳答案

这正是 casper.sendKeys(selector, keys) 的意思函数将发送 native 按键并(希望)触发该文本元素上的事件:

this.waitForSelector('#memberTitle', function then(){
var testname = 'thisIsNotPermanent';
this.sendKeys('#firstname', testname);
}).wait(20, function(){
this.capture('screenshot.png');
});

<input>没有 type 的元素属性默认为 Text类型。

关于javascript - 填写非文本类型的输入字段,并在 CasperJS 中触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33787823/

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