2016-07-01 27 views
0

IntelliJのプロジェクトでPhantomJSとSelenideを使ってWebブラウジング作業を自動化しています。 Javascriptコマンドを実行するには、JavaコードでexecuteJavascript()メソッドを使用します。 このメソッドをコード内で何度も呼び出して、必要なJavascriptコマンドを実行します。JavascriptがSelenideとPhantomJSと連携していません

この場合、自動的に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の式実行部に1によって各コマンド1を実行したとき)、 彼らが働きます。

ここで何が起こっているのですか?

+0

こんにちは! フレームに切り替えようとしましたか? 通常、セレンであなた –

答えて

0

フレームに切り替えようとしましたか?

通常、Seleniumでは、要素にアクセスするにはframe/iframeに切り替える必要があります。このように:

switchTo(frame(1)); 
executeJavaScript("$('#login_email').val('%s')", account.getUsername()); 
関連する問題