首页 > 解决方案 > 无法使用 selenium-Java 单击提交按钮

问题描述

我创建了一个小脚本去 reddit 登录页面输入用户名和密码。我的最后一步是单击登录按钮,但我的 xpath 无法找到它并单击该按钮。我尝试了各种不同的方法,但似乎都没有奏效。

以下是我尝试过的

 driver.findElement(By.xpath("//input[@type='submit']")).click();
    driver.findElement(By.xpath("//button[@class='submit']")).click();
    driver.findElement(By.className("submitButton")).click();

以下是 chrome 检查给出的内容

 <button class="AnimatedForm__submitButton m-full-width" type="submit">     
            Log In        
      </button>

标签: javaseleniumselenium-webdriverxpathwebdriverwait

解决方案


使用WebDriverWait()等待elementToBeClickable()和关注xpath

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[contains(.,'Log In')]"))).click();

或者

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='AnimatedForm__submitButton m-full-width' and @type='submit']"))).click();

推荐阅读