1

我为 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()但仍然没有用。

4

3 回答 3

1

我遇到了类似的问题,经过几个令人沮丧的小时后,我发现,我的情况只有一件事对我有用 - JavascriptExecutor

我不知道为什么所有其他尝试都失败了(它们都在本地运行良好)。这似乎是詹金斯的具体问题。

无论如何,您可以使用此代码段:

WebElement elem = driver.findElement(By.xpath("//path/to/element"));
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", elem);

注意:在我的情况下,我总是能够向click元素发送动作,但不知何故浏览器没有对此动作做出反应。所以元素保持未点击,没有任何错误。

于 2019-04-04T12:01:07.003 回答
0

您不能使用 selenium 单击隐藏元素,因为 if 会抛出您看到的异常。您应该使元素可见(以用户这样做的方式)或使用 javascript 来单击(请参阅 JavaScript 执行器)。

于 2013-06-28T10:21:24.087 回答
0

单击一个元素在本地可以正常工作,但在 Jenkins 中则不行;

首先,我使用 XPATH 定位 web 元素,当点击时,我尝试了 selenium click、actions click、js click。所有人都在本地工作,但不在詹金斯。

最后对我有用的是css选择器与javascriptExecutor click的组合。这解决了我的问题。现在在本地和詹金斯工作。

所以尝试相同。

于 2021-08-25T23:42:29.090 回答