javascript - Selenium - 使用 javascript 启用元素在 Jenkins 中不起作用

标签 javascript jenkins selenium-webdriver selenium-chromedriver selenium-grid

测试是上传一个文件,但问题是该元素被隐藏了。我使用 JavaScript 使元素可见(请参阅下面的代码)。当我在本地计算机上执行该代码时,该代码可以完美运行。但是当我将脚本集成到 jenkins 管道中并且现在在 selenium 网格中使用 chrome 执行它时,它导致了错误。 “不是绝对路径”。 注意:这不是文件位置的问题,因为我们发送的是字符串。该错误指向该元素。

// Hidden Upload File TextBox
public static void uploadFileDropZoneJS(String file) {
    WebElement elem = Browser.driver.findElement(By.xpath("//input[@type='file']"));
    String js = "$(\"input[type='file']\").appendTo('.bulk-uploader');$(\"input[type='file']\").removeClass('dz-hidden-input');$(\"input[type='file']\").css({'visibility':'visible','z-index':'100','position':'relative','width':'300px','height':'20px'});";

    ((JavascriptExecutor) Browser.driver).executeScript(js, elem);
    elem.sendKeys(file);
}

最佳答案

你能把错误贴出来吗?我们遇到了类似的问题,我们的测试在 Windows 机器上本地运行得很好,但是当测试通过 Linux VM 上的 Jenkins 运行时,文件的路径当然会更改为相对于 Jenkins 工作区。进行一些小调整来查找相对于我们工作区的文件,一切都很好。

关于javascript - Selenium - 使用 javascript 启用元素在 Jenkins 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42217716/

相关文章:

javascript - Karma Chrome Headless 无法在 Jenkins 上运行

jenkins - 如何创建公共(public) Jenkins 更新站点的本地镜像?

c++ - Jenkins 测试报告分析器与 catch 的集成

java - 单击关闭窗口按钮但窗口未关闭

javascript - 已编译 CoffeeScript 中的括号和点符号

javascript - JQuery datepicker - 更改日期格式

javascript - Promises 和 Fetches 的问题

python - 无法让我的脚本使用代理获取所需的内容

selenium-webdriver - Selenium - 为什么最小化的浏览器会给出未找到元素的错误,而 max 不会

javascript - IE 11 中的 PDF 查看器与顶部下拉滚动条重叠