无法使用量角器单击复选框

时间:2017-10-19 07:07:00

标签: javascript protractor

<div class="ann_search_technique_container">
    <h1>DÉTAILS TECHNIQUES</h1>
    <h3>BOȊTE DE VITESSE</h3>
    <div class="ann_search_technique_check_container">
        <div class="ann_search_technique_check_grp">
            <span>Automatìque</span>
            <input type="checkbox" id="ann_search_automatique" 
    formControlName="automatic">
        </div>
        <div class="ann_search_technique_check_grp">
            <span>Manuelle</span>
            <input type="checkbox" id="ann_search_manuelle" 
    formControlName="manuel">
        </div>
    </div>
</div>

我的量角器代码是

element(by.css('#ann_search_automatique')).click();

但它在运行时显示错误'元素不可见'。

3 个答案:

答案 0 :(得分:0)

你可以给browser.sleep()并尝试。如果这不起作用,您可以尝试使用javascriptexecutor

var elm = element(by.css('#ann_search_automatique'))
browser.executeScript("arguments[0].click();", elm.getWebElement());

答案 1 :(得分:0)

错误消息表明这是在交互时元素可见的问题。

首先,确保在Protractor尝试与其交互时,该元素实际上是可见的。我有一个页面动画,例如扩展形式的实例;呈现暂时不可见的元素。

请尝试ProtractorExpectedConditions.prototype.visibilityOf。

此示例取自Protractor 5.2.0 API文档:

  

<强> ExpectedConditions.visibilityOf

     

期望检查元素是否存在于DOM的DOM上   页面和可见。可见性意味着元素不仅仅是   显示但也有一个大于0的高度和宽度   与“不可见性”相反。

     

示例

var EC = protractor.ExpectedConditions; 
// Waits for the element withid 'abc' to be visible on the dom.
browser.wait(EC.visibilityOf($('#abc')), 5000);

答案 2 :(得分:0)

对我而言,看起来你的Chackbox实际上是一种无线电按钮功能。选择manuelleautomatique并且可见。

因此首先尝试单击父元素:

$('ann_search_technique_check_container').click();

如果这不起作用,请尝试始终单击“错误”元素(触发它隐藏并让其他'正确'元素出现)。

element(by.css('#ann_search_manuelle')).click();

Bytheway:element(by.css())$()相同,所以这与我的上一行相同:

$('#ann_search_manuelle').click();