我为datepicker编写了一个脚本,用于从日历中选择日期。这些脚本在本地运行正常,但是当我通过jenkins运行脚本时,脚本失败了。
action.moveToElement(driver.findElement(By.xpath("//*[@id='ui-datepicker-div']/div[1]/div/a/span")));//locating the element to click
action.perform();
action.click(driver.findElement(By.xpath("//*[@id='ui-datepicker-div']/div[1]/div/a/span"))); //this line is not executing
action.perform();
单击该元素的脚本无效。我得到了error as "Element is not currently visible and so may not be interacted with"
我也尝试过驱动程序。findElement(By.xpath("//*[@id='ui-datepicker-div']/div[1]/div/a/span")).click() by replacing action.click()
但仍然没用。
答案 0 :(得分:0)
您无法使用selenium单击隐藏元素,因为if会抛出您看到的异常。您应该使元素可见(以用户这样做的方式)或使用javascript单击(请参阅JavaScript执行器)。
答案 1 :(得分:0)
我遇到了类似的问题,经过几个令人沮丧的小时,我发现我的情况对我来说只有一件事起作用-JavascriptExecutor
。我不知道为什么其他所有尝试都失败了(它们都在本地运作良好)。似乎詹金斯的特定问题。无论如何,您都可以使用以下代码段:
WebElement elem = driver.findElement(By.xpath("//path/to/element"));
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", elem);
注意: 在我的情况下,我始终能够向元素发送click
动作,但是浏览器对此动作没有任何反应。因此,元素保持未单击状态,没有任何错误。