首页 > 解决方案 > 在测试中在哪里使用 ajax 方法?如何检查我可以在哪里使用它们?

问题描述

我是自动化领域的新手,面对点击等的 ajax 方法,但不清楚我可以在哪里使用它们。现在,如果我不能点击一个元素,我会使用 ajax,但是有什么方法可以在页面上看到它,我必须对特定元素使用 ajax 方法?

 public void ajaxFocus() {
    JavascriptExecutor jse = (JavascriptExecutor) driver;
    jse.executeScript("document.getElementById('elementid').focus();");
}


public void ajaxClick(WebElement element) {
    ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true)", element);
    wait.until(ExpectedConditions.elementToBeClickable(element));
    element.click();
}

public void ajaxClick(By by) {
    wait.until(ExpectedConditions.presenceOfElementLocated(by));
    wait.until(ExpectedConditions.elementToBeClickable(by));
    ajaxClick(driver.findElement(by));
}

我现在有这些要测试,但不确定在哪里使用它们。目前,据我所知,当常规点击方法不起作用时,我可以使用它们。是否有任何例外可以确定我必须使用 ajax 方法?

标签: javaajaxseleniumselenium-webdriver

解决方案


当本机 webdriver 功能不起作用时,您可以使用这些方法作为备份。与 js 执行器方法相比,WebDriver 方法在单击之前执行一些操作,例如检查元素是否可见、可单击等。您可以在此处找到更多信息 - https://www.w3.org/TR/webdriver/#element -单击而 js 命令没有。我有时会使用 js 命令,例如当元素的不透明度设置为 0 并且 webdriver 无法单击它而 js 命令工作正常时


推荐阅读