我有一个搜索字段,结果由ElasticSearch提供支持,我正在自动选择其中一个结果。 CSS和XPath在选择元素和点击它方面不会产生很大的影响,所以我希望得到一些帮助。
代码:
li data-ng-repeat="match in matches" data-ng-class="{active: isActive($index) }" data-ng-mouseenter="selectActive($index)" data-ng- click="selectMatch($index)" class="ng-scope active">
<a tabindex="-1" class="bg-info ng-scope">
<div class="search-item-container row">
<div class="col-sm-10">
<span class="company-name ng-binding" bind-html-unsafe="match.model.name.length > 30 ? (match.model.name.substr(0,30) + '...').toLowerCase() : match.model.name.toLowerCase() | typeaheadHighlight:query"><strong>alph</strong>, incorporated</span>
<div class="company-info">
<address>
<span class="address-span-container ng-isolate-scope" data-ng-switch="displayFormat" data-obb-address-display-directive="" data-addresses="match.model.addresses" data-display-format="inlineCsz"
使用量角器我的选择器将是:
element(by."some selector"(item to select))).click();
我已尝试过CSS和Xpath,结果如下:
NoSuchElementError: No element found using locator: By.cssSelector(".search-popup li:nth-child(3) a")
答案 0 :(得分:1)
查看openbookben.com,您似乎需要执行以下步骤:
sendKeys
到#landingSearch
元素)element(by.css(ul.dropdown-menu)).isDisplayed()
承诺产生真实时就是这种情况。match in matches
转发器中的一个搜索结果,例如使用量角器all.elements(by.repeater('match in matches'))
company
的新页面为止。对于步骤2和4中的等待,您可以使用量角器的wait方法或量角器的Expected Conditions。
您的NoSuchElementError
发生是因为没有等待,搜索结果还没有。