Opa estou com um pequeno problema com o javaFX usando a parte do WebEngine, por definição pelo que vi tudo do javaFX deve acontecer dentro de uma Thread do javaFX, mas a execução que pretendo fazer devem esperar por algumas dessas tarefas executadas dentro do javaFX terminar.
Um exemplo é carregar uma pagina qualquer como o google nele tem um elemento com atributo name com valor “q” só que eu poder ultilizar esse atributo ele tem que ter sido carregado, a execução do método load do WebEngine não espera a pagina carregar, além desse exemplo tenho outro, quando executo os elemento da pagina eu só consigo pegar eles se eu executar o método getElement dentro da thread do javaFX, e por final a execução de um código javaScript ele só pode ocorre dentro da thread do javaFX e exatamente por causa disso eu faço a sicronização entre o javaFX e a minha aplicação.
Mas esse não é o problema realmente esse é a minha situação, o problema ocorre ao utilizar , o mais estranho é o fato dele executar perfeitamente, e sem mexer em nada, nem alterar nenhuma propriedade ele ao executar n funciona
vou anexar a classe que criei para usar fazer essa execução que deu errado
para executar o erro basta fazer assim ele vai abrir uma tela pequena para vc acompanhar a execução da pagina basta almentar
import java.util.prefs.Preferences;
import org.w3c.dom.Element;
import org.w3c.dom.html.HTMLInputElement;
import verfotos.funcionalidades.WebBrowse;
public class init {
public static void main(String[] args) throws Exception {
Class.forName("verfotos.funcionalidades.WebBrowse");
new Thread(new Runnable() {
@Override
public void run() {
Element[] element = WebBrowse.load("http://www.facebook.com", WebBrowse.by.id("email"), WebBrowse.by.id("pass"), WebBrowse.by.id("loginbutton"));
if (element[0] != null && element[1] != null && element[2] != null) {
HTMLInputElement inputEmail = (HTMLInputElement) element[0];
HTMLInputElement inputPass = (HTMLInputElement) element[1];
inputEmail.setValue("Email Do FaceBook");
inputPass.setValue("Senha do FaceBook");
HTMLInputElement button = (HTMLInputElement) element[2].getFirstChild();
button.click();
}
}
}).start();
WebBrowse.showFrame(true);
}
}