通过java设置JavaFX Web视图中的文件输入值

时间:2016-11-25 20:24:57

标签: javafx webview automation

我的JavaFX中有一个WebView节点,其中加载的页面有一个<input type=file>。我想将此输入的值设置为磁盘上的文件。我知道通过将javascript注入Web视图是不可能的。但我想知道我是否可以访问JavaFX内部如何处理这些输入字段并通过那里设置值。在文档中似乎没有提到文件输入控件的处理,因此我对此感到迷失。

当我点击文件输入时。 JavaFX为我提供了一个本机文件选择器。所以,我希望在单击文件输入时调用某种形式的处理程序,要求用户选择一个文件,然后使用此值填充文件输入。这就是我想要做的。

我尝试获取元素并设置它的值,但当然,它不起作用。

webEngine.getDocument().getElementById("FileInput")
    .setNodeValue("C:\\attachment.pdf");

这段代码什么也没做。没有错误,也没有结果。

那么,有什么想法吗?

1 个答案:

答案 0 :(得分:1)

JavaFX在内部对/usr/lib/python/节点使用WebKit,因此它具有相同的安全限制。无法以编程方式设置WebView的值,也无法通过JavaScript或Java设置。

我建议您在不使用<input type="file"/>节点的情况下使用FileChooserWebView节点显示的是一个选择按钮,它调用WebView,以及一个带有所选文件名的标签。这可以使用JavaFX在Java源代码中轻松实现。