【发布时间】:2016-10-15 01:29:34
【问题描述】:
我想点击一个单选按钮,出现在网页上。代码如下:
HTML 代码:
<div class="small-checkbox red-theme raleway-regular text-muted2 position-relative">
<div class="city-checkbox inline-block position-relative" ng-class="{'rounded-checkbox': main.current_city_id == 1, 'mb-20': main.ifDeviceIsPhone}">
<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect mh-20" for="mumbaiCity" ng-class="{'is-checked' : main.current_city_id == 1}">
<input type="radio" id="mumbaiCity" class="mdl-radio__button position-relative vertical-middle" name="city" value="1" ng-click="main.setCity('Mumbai', 1)">
<span class="mdl-radio__label position-relative font15"><img class="city-icon" src="../../../assets/img/cities/mumbai-icon.png">Mumbai</span>
</label>
</div>
</div>
测试用例:
// demo-test.js
describe('Protractor Demo App', function() {
jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000000;
it('check item count', function() {
browser.get('<link>');
element(by.id('mumbaiCity')).click();
});
});
此测试通过错误:
1) Protractor Demo App检查项目数
消息:
失败:元素不可见
我也尝试过:
element(by.css('[ng-click="main.setCity('Mumbai', 1)"]')).click();
报错:
[16:16:26] E/launcher - 错误:SyntaxError: missing ) after argument list
请建议,单选按钮将如何获得点击?
【问题讨论】:
-
为什么不用angularjs来写这个js代码呢?
-
它是 angularjs 代码的 HTML 部分
-
您是否尝试过在执行之前等待元素变得可见?见Expected Conditions
-
谢谢艾玛,你的问题也帮助了我。
标签: javascript angularjs selenium selenium-webdriver protractor