我使用相同类型的代码来选择下拉代码正常工作但在这种情况下我试图点击按钮。我收到错误,因为元素当前不可见,因此可能无法与之交互 命令持续时间或超时:31毫秒
JavascriptExecutor executor3 = (JavascriptExecutor)driver;
executor3.executeScript("document.getElementById('iskpiFilterAction').style.display='block';");
driver.findElement(By.id("iskpiFilterAction")).click();
Thread.sleep(6000);
问题是隐藏的类型和html标签如下:
<input id="iskpiFilterAction" type="hidden" value="1" name="isKpiFilterAction">
任何人都可以查看代码并给我解决方案或示例代码。
答案 0 :(得分:2)
正如评论中提到的epascarello,#iskpiFilterAction
不是按钮,它是一个隐藏的<input>
元素。因此,您不能在此click()
:
driver.findElement(By.id("iskpiFilterAction")).click(); // this won't work
答案 1 :(得分:0)
此外,人们通常使用这样的元素(可见或不可见)使用ExpectedCondition.visibilityOfElement()
,如下所示:
WebElement foo2 = wait.until(ExpectedConditions
.visibilityOfElementLocated(By.id("iskpiFilterAction")));
然而,获取元素的常规方法可能是:
WebElement foo2 = wait.until(ExpectedConditions
.presenceOfElementLocated(By.id("iskpiFilterAction")));
答案 2 :(得分:0)
您可以尝试使用Selenuim Actions类来模拟用户交互,这将使按钮对用户可见 -
例如:
WebElement menu = driver.findElement(By.xpath(“));
Actions build = new Actions(driver);
build.moveToElement(menu).build().perform();//Hovers the mouse over the first element which will trigger the event
WebElement m2m= driver.findElement(By.xpath(""));// finds the previouslly hidden element
m2m.click();