Я работаю над проектом JavaFX.По какой-то сложной причине мне нужно получить весь видимый текст в WebView
.Кроме того, видимый текст меняется со временем, поэтому мне нужно получать его всякий раз, когда он меняется.Я загружаю файл php
в engine
.
Я пытался использовать view.getAccessibleText()
и engine.getDocument().getTextContent()
без каких-либо возвращаемых значений.Я также пытался зацикливаться, пока не получу некоторые возвращаемые значения из предыдущих методов - опять же, безуспешно.Ответ в приведенной ниже ссылке не очень помогает, поскольку он предоставляет весь базовый код html
(и javascript
).
получить содержимое из веб-просмотра, используя javafx
WebView view = new WebView();
WebEngine engine = view.getEngine();
engine.setJavaScriptEnabled(true);
engine.load("php-file");
StackPane root = new StackPane();
root.getChildren().add(view);
Scene scene = new Scene(root, 500, 500);
Stage stage = new Stage();
stage.setScene(scene);
stage.show();
Task<Boolean> task = new Task<Boolean>() {
@Override
protected Boolean call() throws Exception {
int counter = 0;
while(view.getAccessibleText() == null || view.getAccessibleText().isEmpty) { // or engine.getDocument().getTextContent()
if (counter == 300) {
return false;
}
Delay.delay(1000); // Delays for 1000 ms
counter++;
}
System.out.println(view.getAccessibleText());
if (view.getAccessibleText().contains("desiredText")) {
return true;
}
return false;
};
task.setOnSucceeded(e-> {
System.out.println(task.getValue());
};
Thread t = new Thread(task);
t.start();
PHP-файл
http://www.mediafire.com/file/rrfocuwjq2ycs17/2.php/file
Обратите внимание, что у меня средний опыт в php
и очень небольшой опыт в javascript
.Это php
было предоставлено сотрудником.Так что путь через java
приветствуется.