在量角器的测试中,我期望最后看到 element1 或 element2 仅当显示 element1 并且页面上没有 element2 时,“解决方案”才有效
expect(element1.isDisplayed() || element2.isDisplayed()).toBeTruthy();
如果页面上没有 element1 但 element2 在页面上-我收到了错误消息:
Failed: No element found using locator: ...(element1 locator)
我无法在只有一个期望的情况下编写测试,这是对Data的测试,在我的情况下,可能有2个结果。 如何验证页面上是否显示了两个元素之一?
答案 0 :(得分:3)
我认为git config --global credential.helper 'cache timeout 3600'
git clone https://myuser@bitbucket.org/myproject/myrepo.git
### password should be prompted
git clone https://myuser@bitbucket.org/myproject/mysecondrepo.git
### look ma, no password prompt!
git clone https://myuser@bitbucket.org/myproject/mythirdrepo.git
git clone https://myuser@bitbucket.org/myproject/myfourthrepo.git
git clone https://myuser@bitbucket.org/myproject/andsoforthrepo.git
不理解表达式Jasmine
,因此,即使不显示这两个元素,该断言仍然会通过。
ExpectedConditions API提供element1.isDisplayed() || element2.isDisplayed()
操作。
and/or
答案 1 :(得分:1)
首先,检查isDisplayed()是否是您要使用的正确函数。
您的元素是实际呈现的但只是设置为隐藏的,还是不在页面中?如果只是隐藏,则可以使用isDisplayed()。如果它不在页面中,那么您需要找到一种更好的方法来包装元素.isDisplayed()的检查,甚至找到一个更合适的函数。
发生的事情是您的测试试图确定element1.isDisplayed()是true还是false,而是得到一个'使用定位器没有找到元素:element1'。假设,如果您的定位器是id ='my-element-1',则意味着Webdriver尝试在呈现的页面中找到一个ID为'my-element-1'的元素,却一无所获,而使用element1.isDisplayed( ),您要让网络驱动程序告诉您element1可见性是否隐藏。
底线isDisplayed returns a promise,您必须妥善处理,否则,只要返回的结果不是您的期望,就会遇到麻烦。