Ich arbeite an einem Projekt in IntelliJ, das PhantomJS und Selenide verwendet, um Web-Browsing-Aktivität zu automatisieren. Um JavaScript-Befehle auszuführen, verwenden wir die Methode executeJavascript() in unserem Java-Code. Wir nennen diese Methode viele Male in unserem Code, um die Javascript-Befehle auszuführen, die wir wollen.Javascript arbeitet nicht mit Selenide und PhantomJS
Für diesen speziellen Fall machen wir ein Programm, das uns automatisch in Footlocker loggen sollte.
-Code für das Programm:
public Boolean doInBackground() {
WebDriver driver = getWebDriver();
System.out.println("Running Footlocker");
open(account.getEarlyLink()); //opens URL
System.out.println("Running Footlocker");
if (!loggedIn) {
WebDriverRunner.setWebDriver(driver);
$("#guest_welcome_login").shouldBe(visible).click();
$("#login_container").shouldBe(visible);
}
executeJavaScript("$('html').find('iframe').eq(1).contents().find('#login_email').val('%s')", account.getUsername());
executeJavaScript(String.format("$('html').find('iframe').eq(1).contents().find('#login_password').val('%s')", account.getPassword()));
executeJavaScript("$('html').find('iframe').eq(1).contents().find('button.button.cta_button').click()");
$("#member_welcome").shouldBe(visible);
}
Wenn wir das Programm ausführen, keine der executeJavascript() Befehle tatsächlich ausgeführt werden, aber wenn wir laufen jeden Befehl nacheinander in dem IntelliJ Ausdruck executer (im Debugger), Sie arbeiten.
Wer weiß, was hier passiert?
Hallo Bill! Haben Sie versucht, in Frame zu wechseln? Typischerweise in Selen Sie –