检查CasperJS中是否存在标签(而不是选择器)
Check if label exists (rather than selector) in CasperJS
根据CasperJS文档,您可以检查选择器是否为exists
。
if (this.exists('#my_super_id')) {
this.echo('found #my_super_id', 'INFO');
}
您可以将任何CSS3选择器放在#my_super_id
的位置,它的工作效果非常好。但是,如果您想用泛型类单击特定按钮,这并不是很有用。
<div class="btn button">Save</div>
命令clickLabel
在这些情况下工作得很好,但我还没有找到在点击标签之前检查标签是否存在的方法
// This doesn't work, for obvious reasons
if (this.labelExists('Save')) {
this.clickLabel('Save');
}
有人有解决方案吗?
XPath是您的朋友(或者您可以迭代页面上的所有元素)。
var x = require("casper").selectXPath;
casper.labelExists = function(labelText, tag){
tag = tag | "*";
return this.exists(x("//"+tag+"[text()='"+labelText+"']"));
};
这在casper
对象上创建了一个可以重用的函数,其工作方式与clickLabel
完全相同。
相关文章:
- JQuery:单击范围标签时切换日期选择器
- 谷歌图表:无效的列标签 |类别筛选器作为列选择器
- Rally SDK 2 标签选择器是否有必填字段?对象没有方法'getContextPath'
- 查找带有多个选择器的 prev() 标签
- 花哨的jQuery标签选择器
- Twitter Bootstrap Dropdown与标签选择器
- 此标签的正确选择器
- 检查CasperJS中是否存在标签(而不是选择器)
- 如何通过按下标签显示隐藏内容使用选择器
- jQuery选择器问题与锚标签和隐藏Div
- 用于复选框标签的Jquery选择器
- 通过选择器更改视图标签的字体
- jQuery可以使用结束标签作为选择器吗?
- onclick JQuery函数在HTML标签中设置日期选择器值为不同的日期
- 在Angular js中,不能从带有标签的日期选择器中获取选定的日期
- 通过自定义标签设置午休选择器
- jQuery标签'for'属性选择器
- 为什么jquery选择器不'不适用于新替换的标签
- Jquery选择器对添加的标签不起作用
- 当在Angular 2中使用ngFor时,有没有可能不使用组件选择器标签来包装组件内容?