java - 在测试中在哪里使用 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 方法?
解决方案
当本机 webdriver 功能不起作用时,您可以使用这些方法作为备份。与 js 执行器方法相比,WebDriver 方法在单击之前执行一些操作,例如检查元素是否可见、可单击等。您可以在此处找到更多信息 - https://www.w3.org/TR/webdriver/#element -单击而 js 命令没有。我有时会使用 js 命令,例如当元素的不透明度设置为 0 并且 webdriver 无法单击它而 js 命令工作正常时
推荐阅读
- mysql - 具有分隔值的 Mysql 字段
- java - 没有关于 Parameter 额外信息的通用方法
- c# - 在 VS2019 中从 AnyCPU 移动到 x86 时更新服务参考失败
- javascript - 如何将 JavaScript 逗号分隔对象转换为名称值对数组?
- javascript - options.time 不是数字。(val=undefined) 不和谐赠品
- asp.net-mvc - MVC Razor 有没有办法通过从列表中生成 SelectListItems 来填充 DropdownListFor
视图模型 - c# - ASP.NET Core MVC 视图中的异步行为?
- lambda - 将复杂的逻辑转换为流/可选
- typescript - 何时使用声明模块和声明命名空间
- javascript - 如何使用 Tabulator 进行全行搜索?