java 无法点击“提交”按钮,无法在自动测试中工作,手动工作

xxls0lw8  于 2022-12-21  发布在  Java
关注(0)|答案(2)|浏览(191)

我有一个标准表单,有两个文本框需要填写,还有一个提交按钮。提交按钮应该在填写完第一个必填文本框后才能工作。它可以手动工作,但是当在自动化基础设施上运行时,元素不会被点击。奇怪的是,当调试时,提交按钮也不可点击,尽管它没有变灰。我尝试了3种经典方法:Javascript:

JavascriptExecutor executor = (JavascriptExecutor)driver;
 executor.executeScript("arguments[0].click();", element);

行动:

Actions actions = new Actions(driver);
actions.moveToElement(element).click().perform();

点击:

element.click()
    • 在自动化模式下不能手动操作**只有在关闭表单并创建新表单时才能操作。
u91tlkcl

u91tlkcl1#

要在任何***可单击***元素上执行click(),理想情况下需要为elementToBeClickable()引入WebDriverWait,可以使用以下解决方案之一:

new WebDriverWait(driver, Duration.ofSeconds(10)).until(ExpectedConditions.elementToBeClickable(By.xpath("//elementXpath"))).click();

作为替代方法,使用Actions类:

new Actions(driver).moveToElement(new WebDriverWait(driver, Duration.ofSeconds(10)).until(ExpectedConditions.elementToBeClickable(By.xpath("//elementXpath")))).click().build().perform();

另一种方法是使用JavascriptExecutor

((JavascriptExecutor)driver).executeScript("arguments[0].click();", new WebDriverWait(driver, Duration.ofSeconds(10)).until(ExpectedConditions.elementToBeClickable(By.xpath("//elementXpath"))));
goqiplq2

goqiplq22#

根据您回放的步骤,可能有隐藏的弹出窗口或某些东西阻止了您的元素,因此使用WebDriverWait不仅可以单击,而且可以尝试elementToBeSelected()invisibilityOfTheElementLocated()presenceOfAllElementsLocatedBy()
增加能够检测问题的等待时间

相关问题