Java 测试中在哪里使用ajax方法?如何检查我可以在哪里使用它们?

Java 测试中在哪里使用ajax方法?如何检查我可以在哪里使用它们?,java,ajax,selenium,selenium-webdriver,Java,Ajax,Selenium,Selenium Webdriver,我是自动化方面的新手,面临单击等ajax方法,但不清楚在哪里可以使用它们。现在,如果我不能单击某个元素,我就使用ajax,但是有没有办法在页面上看到我必须使用ajax方法来处理特定元素 public void ajaxFocus() { JavascriptExecutor jse = (JavascriptExecutor) driver; jse.executeScript("document.getElementById('elementid').focus();");

我是自动化方面的新手,面临单击等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方法

当本机webdriver功能不起作用时,可以使用这些方法作为备份。WebDriver方法与js executor方法相比,在单击之前执行一些操作,例如检查元素是否可见、是否可单击等。您可以在此处找到更多信息,而js命令则没有。我有时会使用js命令,例如,元素的不透明度设置为0,webdriver无法单击它,而js命令工作得很好

AJAX:Selenium的全部目的是模拟最终用户。不要使用javascript单击链接。。。最终用户没有,你也不应该。有些人这样做是为了迫使他们的测试通过,但实际上你应该检查你的webdriver异常。它们被设计为出于非常具体的原因而抛出,在我看来,不应该使用。而且,首先滚动窗口的功能也不是必需的。如果需要,单击操作会将元素滚动到视图中。是否收到错误消息?你到底在问什么?我面临这个问题——单击复选框,尝试“操作”“选择”和其他单击,然后意识到我必须使用ajax方法。不知道如何从异常中找出立即使用它们的方法。