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