当前位置: 首页 > 知识库问答 >
问题:

组织。openqa。硒。TimeoutException:预期条件失败:正在等待位于的元素的可见性。xpath:

桓信鸥
2023-03-14

我正在尝试使用选项sendkeys()发送文本。这是我的类页面对象中的方法案例:

public void setEntityName() {
    internalWait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"entity_name\"]")));
    entityName.clear();
    entityName.sendKeys("TEST");
}

HTML:

 <input id="entity_name" name="entity_name" type="text" ng-model="entityData.name" ng-disabled="false" placeholder="Type Enity Name" data-maxlength="20" data-smart-validate-input="" data-required="" class="ng-pristine ng-invalid ng-invalid-required ng-valid-maxlength ng-touched">

测试显示错误

org.openqa.selenium.TimeoutException: Expected condition failed: waiting for visibility of element located by By.xpath: //*[@id="entity_name"] 

有人能帮我解决这个错误吗。

共有1个答案

陶锋
2023-03-14

所需的元素是一个Angular元素,因此要调用sendKeys()而不是visibilityOfElement定位(),您必须诱导WebDriver等待elementToBeClickable(),您可以使用以下任何一种解决方案:

>

public void setEntityName() {
    WebElement entityName = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.ng-pristine.ng-invalid.ng-invalid-required.ng-valid-maxlength.ng-touched#entity_name[ng-model='entityData.name']")));
    entityName.clear();
    entityName.sendKeys("TEST");
}

使用xpath

public void setEntityName() {
    WebElement entityName = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@class='ng-pristine ng-invalid ng-invalid-required ng-valid-maxlength ng-touched' and @id='entity_name'][@ng-model='entityData.name']")));
    entityName.clear();
    entityName.sendKeys("TEST");
}
 类似资料:
  • 问题内容: 我试图单击alibaba.com网站上的“登录”链接 这是我的测试用例: 这是定位Web元素的对象类 但是,当我运行此代码时,总是会遇到以下异常: 请帮我。 问题答案: 请尝试以下操作:

  • 我试图通过ID在页面上查找元素,但即使元素有ID,selenium也会显示无法找到元素的消息。 我创建了一个名为InvalidLogin的类,它扩展了BaseClass类。在InvalidLogin类中,有一个名为fillDocmentOps的方法。在这个方法中,我试图通过ID(cboMotivo)找到元素,但我不能。下面是类代码和屏幕打印。 } cboMotivo元素ID控制台Eclipse错误

  • 需要一些帮助。 我正试图登录Flipkart并通过selenium购买第一部Iphone。 然而,我被困在下面提到的页面 https://www.flipkart.com/apple-iphone-6.../p/itmen2yynt6bz3gg... 我尝试单击比较复选框、16GB按钮、立即购买按钮和添加到购物车按钮,但所有操作都无法定位错误。 任何帮助都将不胜感激。 提前感谢 我使用了隐式等待和

  • Html树: Xpath://table[@class='ur MatrixLayout urhtmltableReset']//tr//table//tr//td//div//div/span[contains(text(),'revisations')]

  • 我有一个方法,它等待css(模态)定位器在屏幕上不可见,在我的一些构建中,我得到以下失败消息 我的方法:

  • 所以我们有一页医学专科。它原本只是英文的。因此,如果您搜索“neuro”,则HTML看起来类似于 然后他们添加了西班牙语,所以并不是所有的结果都会返回,但是只有西班牙语是可见的。一个新的 > 添加在底部。 是否有方法等待任何匹配xpath的元素可见?注意,visibilityOfAllElements()将不起作用,因为它们不会全部可见。 我想可以做的是,预先计算所有带有@id和“width”的元