当我输入用户名和密码时,显式等待不是在等待元素可单击
场景:
我已经尝试了使用元素的所有显式等待功能,这些元素是可点击的,元素的存在,元素的可见性
private static WebDriver driver;
private static WebDriverWait wait;
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
Browsxers a = new Browsxers();
try {
driver = a.browse(driver);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
wait = new WebDriverWait(driver, 40);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("https://wbdotcomqa.azurewebsites.net/home");
driver.findElement(By.xpath("//*[@id='navbar']/div/div[1]/div/div[2]/div/a/span[1]")).click();
Thread.sleep(1000);
driver.findElement(By.id("username")).sendKeys("Whataburgerqa86+1112@gmail.com");
driver.findElement(By.id("password")).sendKeys("burger01");
WebElement wb = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//button[@class='btn wb-btn-default center-block']")));
wb.click();
硒没有错误,就像硒被禁用时单击按钮一样
答案 0 :(得分:1)
在您的页面中,如果没有填写凭据输入,则会将disabled
attribute添加到表单中。
并且当凭据不为空时,disabled
属性将消失:
个人认为以上情况,我希望采用以下方法:
disabled
属性的按钮消失disabled
属性的按钮变为可点击状态相关代码行为:
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("//button[@class='btn wb-btn-default center-block' and @disabled]")));
WebElement wb = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='btn wb-btn-default center-block' and not(@disabled)]")));
更多信息: