SeleniumでUIの自動テストをする際、途中でJavascriptを実行したくなるときがあります。
たとえば
- 画面のスクロール
- ブックマークレット起動
などなど。
そんなときのやり方です。
javascriptを実行する
JavascriptExecutor
を使います。
package Example.example;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class AppTest {
private static WebDriver driver;
public AppTest() {
}
@Before
public void before() {
System.out.println("before start");
System.setProperty("webdriver.chrome.driver", "/Users/yoshikiito/workspace/webdriver/chromedriver");
driver = new ChromeDriver();
}
@Test
public void Test() {
System.out.println("test start");
driver.get("http://google.com");
JavascriptExecutor jexec = (JavascriptExecutor) driver;
jexec.executeScript("alert('hoge')");
}
@After
public void after() {
driver.quit();
}
}
これをJUnitで実行すると・・・
この通り。
jexec.executeScript();
の引数部分のコードが実行されます。