空手道 UI 自动化测试结果不一致



我的目标是去 Amazon.com,搜索一本书并确认它出现在结果中。我的断言的结果是不连贯的。

Feature: Amazon UI automation
Background:
* def baseUrl = 'https://www.amazon.com/'
Scenario: Search for item
Given driver baseUrl
And def searchTerm = "Explore It"
And def searchTermEncoded = "Explore+It"
# When input("#twotabsearchtextbox", [searchTerm, Key.ENTER])  # ENTER doesn't work ¯_(ツ)_/¯
When input("#twotabsearchtextbox", searchTerm)
And click("#nav-search-submit-text")
Then locate("div.s-result-list").exists                        # 1) this passes
And locate("{span}Reduce Risk and Increase Confidence").exists # 2) this passes
And match driver.url contains "s?k=" + searchTermEncoded       # 3) this fails

断言 3( 不通过。这意味着空手道没有到达亚马逊的结果页面。我确认这是真的,因为我拍了一screenshot(),空手道还在主页上,搜索栏被填满了。

那么为什么断言 1 和 2 会通过呢?1( 的定位器仅存在于结果页面中,主页中没有匹配的内容。此外,2(的文本是本书的完整标题,仅在搜索后出现。

这是一个错误,可能与以下错误相同: 断言存在((.exists 返回断言评估为 false 甚至定位器在 DOM 中可用

它在版本 0.9.6.RC3 中已修复

最新更新