2014-10-31 113 views
0

如何检查一个元素是否存在?如何检查是否存在几个元素之一?

我知道有一个函数assertExists,但它只检查一个特定元素。我需要检查页面中是否存在三个元素之一(例如,我有一个登录链接,它对于不同的网站有不同的类别,但通常我可以将这些网站分为三类)。是否有可以插入assertExists的任何'和/或'条件?

+0

感谢您对Artjom的快速响应。这正是我所需要的 – 2014-11-03 02:34:17

回答

1

你总是喜欢CasperJS多种方式来实现这一点。

最通用的方法是使用casper.exists

test.assert(casper.exists("selector1") || casper.exists("selector2")); // 1 
test.assert(casper.exists("selector1") && casper.exists("selector2")); // 2 

那么你可以使用,来连接两个CSS选择器或|两个XPath表达式,这使得双方的或操作

test.assertExists("selector1, selector2"); 
test.assertExists(x("selector1 | selector2")); 

如果你想在选择器之间使用一个AND运算符,你可以将它分成两个语句,因为你正在测试,其中一个将失败:

test.assertExists("selector1"); 
test.assertExists("selector2"); 

我只使用了两个选择器,但这对3个或更多选择器也是一样的。

+0

适用于assertExists。有没有类比assertResourceExists?我尝试了test.assertResourceExists('site-logo.png,logo');但看起来它检查两个资源是否存在,但不是其中一个 – 2014-11-03 04:32:16

+0

使用函数而不是字符串:'test.assertResourceExists(function check(res){return res.indexOf('site-logo.png')!= = -1 || res.indexOf('logo')!== -1});' – 2014-11-03 06:26:41

+0

非常感谢Artjom – 2014-11-03 23:22:22