Javascript 如何使用量角器单击收音机按钮?

Javascript 如何使用量角器单击收音机按钮?,javascript,jasmine,protractor,Javascript,Jasmine,Protractor,我有一些单选按钮,我必须点击第一个,但量角器让我返回“元素不可见”。我是否以错误的方式使用选择器 I've trying: element.all(by.css('ui-radiobutton-icon.ui-clickable')).first.click(); 及 HTML <p-dtradiobutton class="ng-star-inserted"> <div class="ui-radiobutton ui-widget">

我有一些单选按钮,我必须点击第一个,但量角器让我返回“元素不可见”。我是否以错误的方式使用选择器

I've trying:
element.all(by.css('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>

请尝试下面的内容

元素.all(by.css('ui-radiobutton-icon.ui-clickable input'))。首先。单击()

类ui单选按钮图标前缺少一个“.”。试试这个:

element.all(by.css('.ui-radiobutton-icon.ui-clickable')).first.click();
我看到一些错误:

1) 它是
first()
而不是
first

2)
by.class('foo')
应该是
by.className('foo')

3) 虽然不确定,但您可能希望单击
输入
元素

通常,在使用定位器时,应将其链接起来。尝试从页面顶部开始,并将其链接到应选择的元素。为了重用,您还可以存储链式
元素
调用。通常,如果可能的话,尝试使用
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();

首先,量角器中没有browser.class这样的东西。第二件事是代码中有两处错误

而不是

 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();

看起来它是您的选择器,可以尝试element.all(by.class('.ui radiobutton icon.ui clickable'))。首先。单击();我不知道量角器,但您使用的不是有效的查询选择查询来查找该元素。为什么要使用element.all而不是唯一定位器
  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();