该站点运行的是较旧的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>


当我尝试访问此文本字段时,硒给了我和Element Not Interactable异常。

我尝试过将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);
}


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

最佳答案

看起来元素已嵌入标签中。

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

private WebElement approxCostDevelop;

09-13 01:56