无法找到请求的元素:By.xpath:// * [@@ id =“ SF-Refresh”]

时间:2019-10-02 17:52:50

标签: xpath automation apex

我一直在尝试启动和运行自动化测试,但是一直遇到一些Xpath错误。我遇到5个错误,所有错误均与丢失/无法找到我编写的Xpath有关。我需要进行测试,然后单击位于网页上的数据表中的“刷新”按钮。按钮而不是单击按钮,我得到以下错误。按钮的ID为“ SF-Refresh”。

@When("I click refresh button")
@Given("I click refresh button")
@Then("I click refresh button")
public void clickRefreshButton() {
    By linkSelect = new By.ByXPath("//*[@id=\"SF-Refresh\"]");   
    try {
        Thread.sleep(5000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    LightningButton.click(linkSelect);

}

错误: 无法找到请求的元素:By.xpath:// * [@@ id =“ SF-Refresh”]

1 个答案:

答案 0 :(得分:0)

几乎没有可能出现以下错误:

1)Xpath可能错误或相同的Xpath返回多个元素,仅当您使用findElement

时,xpath必须返回一个元素

2)元素可能尚未正确加载或尚未准备好用于以下操作:

    WebDriverWait wait = new WebDriverWait(driver, 30);
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id="SF-Refresh"]")));
    wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id="SF-Refresh"]")));
    LightningButton.click(linkSelect);