【问题标题】:Where to use ajax methods in testing? how to check where I can use them? [closed]在测试中在哪里使用 ajax 方法?如何检查我可以在哪里使用它们? [关闭]
【发布时间】:2020-01-21 18:31:07
【问题描述】:

我是自动化领域的新手,面对点击等的 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 方法?

【问题讨论】:

  • AJAX: w3schools.com/xml/ajax_intro.asp Selenium 的全部意义在于模拟最终用户。不要使用 javascript 点击链接......最终用户不会,你也不应该。有些人这样做是为了强制他们的测试通过,但实际上你应该检查你的 webdriver 异常。它们被设计为出于非常特定的原因而被抛出,并且在 imo 中不应该被解决。
  • 也不需要先滚动窗口的功能。如果需要,单击操作会将元素滚动到视图中。
  • 您遇到错误了吗?你到底在问什么?
  • 我遇到了这个问题——点击复选框,并尝试了“action”“select”等点击,后来意识到我必须使用ajax方法。不知道如何从异常中找出来立即使用它们。

标签: java ajax selenium selenium-webdriver


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 2012-04-09
    相关资源
    最近更新 更多