Selenium,Java和Angular:元素不可交互

时间:2019-06-11 08:43:56

标签: java angular selenium

该网站运行的是较旧的Angular版本5.2.11。

我在页面上看起来像一个直的输入字段,但是在标记中可能不是那么直:

<div felt fieldname="approxCostDevelop" class="felt" e2e-selector="approx-cost-develop">
   <est-currecy-felt ng-model="develop.price" input-id="approxCostDevelop">
      <translate>Approximate cost of development</translate>
   </est-currency-felt>
</div>

当我尝试访问此文本字段时,硒使我和“元素不可交互”异常出现。

我尝试将e2e-selector属性放置在现在的位置以及在input-id属性字段之后。我还尝试过使用input-id属性代替e2e-selector。每次都得到相同的结果。

我创建和访问WebElement的方式:

//@FindBy(css = "[e2e-selector=approx-cost-develop]")
@FindBy(css = "[input-id=approxCostDevelop]")
private WebElement approxCostDevelopTextField;

public void setApproxCostDevelop(String approxCost) {
    pproxCostDevelopTextField.sendKeys(approxCost);
}

这不是密码字段或任何特殊字段。从页面加载开始,它始终可见。紧接其前的元素是复选框列表,所有复选框都是可交互的。

1 个答案:

答案 0 :(得分:2)

元素似乎已嵌入标签中。

我对Angular不太熟悉,但是:不要使用@FindBy并创建一个命名的WebElement,而是尝试仅创建一个与input-id同名的WebElement。像这样:

private WebElement approxCostDevelop;