我正在使用 PhantomJS 和 Selenide 来自动化网页浏览活动的 IntelliJ 项目。为了运行 Javascript 命令,我们在 Java 代码中使用了 executeJavascript() 方法。我们在代码中多次调用此方法来执行我们想要的 Javascript 命令。
对于这种特殊情况,我们正在制作一个程序,该程序应自动将我们登录到Footlocker。
程序代码:
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);
}
当我们运行程序时,executeJavascript() 命令实际上并没有被执行,但是当我们在 IntelliJ 表达式执行器(在调试器中)中一个一个地运行每个命令时,它们就起作用了。
有人知道这里发生了什么吗?