主诉:
使用CSS选择器无法定位元素
CSS 路径:
html.ng-scope body.ng-scope div.snap-content div.content-container div.ng-scope div.content-box div div.cb-landing-module div.deposit-acct-box div.dropdown div.dd-field div.dd-arrow-box
CSS 选择器:
.dropdown .dd-arrow-box
我如何在 Watir/Cucumber 中使用它:
@browser.element(:css => 'dd-arrow-box').click
错误:
Cucumber reported error: Unable to late element
问题描述:
我有一个我想点击的组合框 结果将是从列表中选择元素。 我已经尝试过 xpath ,在可能的组合中出现相同的错误 找不到元素
尝试过:
可能/同步问题:偶数触发…… 失败
Xpath – 失败
当我关闭该方法(例如)单击并添加 exist 时,它被发现了。点不进去
编辑:从评论中添加 HTML:
<div class="dd-arrow">
</div>
</div>
</div>
<ul class="dd-box" style="display: none;">
<li class="dd-list-head"> Direct Deposit </li>
<li class="dd-item ng-scope ng-binding" ng-click="selectAccount(directDeposit)" ng-repeat="directDeposit in directDeposits">
<span class="acct-name ng-binding">WELLS FARGO BANK, NA</span>
还是不解最后抛出如下异常:invalid attribute: :css (Watir::Exception::MissingWayOfFindingObjectException)
最佳答案
这可能是因为您要查找的是 dd-arrow-box
标记,而不是类。将您的代码更改为如下所示:
@browser.element(:css => '.dd-arrow-box').click
就像您定义一个 css 文件一样。注意 dd-arrow-box
这是一个很好的例子。 鉴于 html:
<div class="divhere">
<p>Hello</p>
</div>
您可以使用代码 @browser.element(css: 'p').text
从段落中获取文本。
同样,@browser.element(css: '.divhere')
将使用类选择器定位 div 元素。
关于css - Watir/Cucumber 无法定位元素 : dd-field div. dd-arrow-box(使用 CSS 选择器*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21389919/