我有一些单选按钮,我必须单击第一个按钮,但是量角器使我返回“元素不可见”。我使用选择器的方式有误吗?
I've trying:
element.all(by.css('ui-radiobutton-icon.ui-clickable')).first.click();
和
element.all(by.class('ui-radiobutton-icon.ui-clickable')).first.click();
HTML
<p-dtradiobutton class="ng-star-inserted">
<div class="ui-radiobutton ui-widget">
<div class="ui-helper-hidden-accessible">
<input type="radio">
</div>
<div class="ui-radiobutton-box ui-widget ui-radiobutton-relative ui-state-default">
<span class="ui-radiobutton-icon ui-clickable"></span>
</div>
</div>
</p-dtradiobutton>
答案 0 :(得分:0)
请您尝试以下。
element.all(by.css('ui-radiobutton-icon.ui-clickable输入'))。first.click();
答案 1 :(得分:0)
您缺少一个“”。在ui-radiobutton-icon类之前。试试这个:
element.all(by.css('.ui-radiobutton-icon.ui-clickable')).first.click();
答案 2 :(得分:0)
我看到的几个错误:
1)它是first()
而不是first
2)by.class('foo')
应该是by.className('foo')
3)不确定,但是您可能要单击input
元素
通常,在使用定位器时,应将它们链接起来。尝试从页面的顶部开始,并将其链接到应该选择的元素。为了实现可重用性,您还可以存储链接的element
调用。通常,请尽可能使用element()
代替element.all()
。
对于单击单选按钮,我建议以下代码:
// start at the very top.
element(by.tagName('p-dtradiobutton'))
.element(by.css('.ui-radioButton .ui-helper-hidden-accessible'))
.element(by.tagName('input')).click();
答案 3 :(得分:0)
首先,量角器中没有browser.class这样的东西。第二件事是您的代码中有2个错误。
代替
element.all(by.css('ui-radiobutton-icon.ui-clickable')).first.click();
使用此代码
element.all(by.css('.ui-radiobutton-icon.ui-clickable')).first().click();
如果您将元素不可点击或看不见的错误错误
var EC = protractor.ExpectedConditions;
var element=element.all(by.css('.ui-radiobutton-icon.ui-clickable')).first();
var isClickable = EC.elementToBeClickable(element);
browser.wait(isClickable, 5000);
element.click();