【发布时间】: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