我有一个标准表单,有两个文本框需要填写,还有一个提交按钮。提交按钮应该在填写完第一个必填文本框后才能工作。它可以手动工作,但是当在自动化基础设施上运行时,元素不会被点击。奇怪的是,当调试时,提交按钮也不可点击,尽管它没有变灰。我尝试了3种经典方法:Javascript:
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);
行动:
Actions actions = new Actions(driver);
actions.moveToElement(element).click().perform();
点击:
element.click()
- 在自动化模式下不能手动操作**只有在关闭表单并创建新表单时才能操作。
2条答案
按热度按时间u91tlkcl1#
要在任何***可单击***元素上执行click(),理想情况下需要为elementToBeClickable()引入WebDriverWait,可以使用以下解决方案之一:
作为替代方法,使用
Actions
类:另一种方法是使用
JavascriptExecutor
:goqiplq22#
根据您回放的步骤,可能有隐藏的弹出窗口或某些东西阻止了您的元素,因此使用WebDriverWait不仅可以单击,而且可以尝试elementToBeSelected()、invisibilityOfTheElementLocated()或presenceOfAllElementsLocatedBy()
增加能够检测问题的等待时间