使用 Casperjs 单击 Angularjs
Click in Angularjs using Casperjs
我想使用 casperjs 点击 angularjs。但是,我无法做到这一点。每次我 运行 网页都会填充一个对话框,所以这就是我需要点击的原因。
这是我尝试点击的内容
<button class="ng-scope" trans="" ng-click="closeDialog(activeDialog, 'okButton');$event.stopPropagation();" ng-if="!activeDialog.yesno">Tamam</button>
这是我在casperjs中使用的
casper.then(function () {
this.evaluate(function() {
$($(document).find('button[ng-if="!activeDialog.yesno"]')).click();
});
this.wait(3000);
提前致谢
不要在 selector 中使用属性值。你可以给你的按钮一个唯一的 class 或者 id 到 select 它:
<button class="yesno" trans="" ng-click="closeDialog(activeDialog, 'okButton');$event.stopPropagation();" ng-if="!activeDialog.yesno">Tamam</button>
和
this.evaluate(function() {
$($(document).find('.yesno')).click();
});
或者如果只有一个按钮就使用:
this.evaluate(function() {
$($(document).find('button[ng-if]')).click();
});
我使用下面的代码解决了这个问题:
casper.waitUntilVisible('.close-j',function(){
this.click(x("//a[@ng-show='!activeDialog.hideCloseButton']"));
this.wait(5000);
});
你也可以这样解决:
this.click('button[ng-if="!activeDialog.yesno"]');
我有类似的问题。每次我登录该网站时,都会打开一个弹出窗口 window,我必须输入特定值的文本字段并单击按钮。这就是弹出 window class 和其他属性的样子:
<button class="md-raised md-primary md-button md-button md-ink-ripple" aria-label="Okey", type="button">
我就是这样解决的:
this.waitUntilVisible('button[aria-label="Okay"]', function () {
this.click('button[aria-label="Okay"]');
this.echo("########### Okay button clicked")
})
我想使用 casperjs 点击 angularjs。但是,我无法做到这一点。每次我 运行 网页都会填充一个对话框,所以这就是我需要点击的原因。
这是我尝试点击的内容
<button class="ng-scope" trans="" ng-click="closeDialog(activeDialog, 'okButton');$event.stopPropagation();" ng-if="!activeDialog.yesno">Tamam</button>
这是我在casperjs中使用的
casper.then(function () {
this.evaluate(function() {
$($(document).find('button[ng-if="!activeDialog.yesno"]')).click();
});
this.wait(3000);
提前致谢
不要在 selector 中使用属性值。你可以给你的按钮一个唯一的 class 或者 id 到 select 它:
<button class="yesno" trans="" ng-click="closeDialog(activeDialog, 'okButton');$event.stopPropagation();" ng-if="!activeDialog.yesno">Tamam</button>
和
this.evaluate(function() {
$($(document).find('.yesno')).click();
});
或者如果只有一个按钮就使用:
this.evaluate(function() {
$($(document).find('button[ng-if]')).click();
});
我使用下面的代码解决了这个问题:
casper.waitUntilVisible('.close-j',function(){
this.click(x("//a[@ng-show='!activeDialog.hideCloseButton']"));
this.wait(5000);
});
你也可以这样解决:
this.click('button[ng-if="!activeDialog.yesno"]');
我有类似的问题。每次我登录该网站时,都会打开一个弹出窗口 window,我必须输入特定值的文本字段并单击按钮。这就是弹出 window class 和其他属性的样子:
<button class="md-raised md-primary md-button md-button md-ink-ripple" aria-label="Okey", type="button">
我就是这样解决的:
this.waitUntilVisible('button[aria-label="Okay"]', function () {
this.click('button[aria-label="Okay"]');
this.echo("########### Okay button clicked")
})