Selenium WebDriver超入門
試行錯誤して動作&IEでのキャプチャまで実行できたのが、
以下のコード。
たぶん環境差異ありなので、参考にする際は注意されたし。
import java.io.File; import org.openqa.selenium.By; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.io.FileHandler; import org.openqa.selenium.remote.DesiredCapabilities; public class Sample { public static void main(String[] args) { File file = new File("C:\\oper\\Java\\selenium\\IEDriverServer.exe"); System.setProperty("webdriver.ie.driver", file.getAbsolutePath()); //http://stackoverflow.com/questions/12034969/internetexplorerdriver-zoom-level-error DesiredCapabilities caps = DesiredCapabilities.internetExplorer(); caps.setCapability("ignoreZoomSetting", true); WebDriver driver = new InternetExplorerDriver(caps); driver.get("http://www.google.com"); System.out.println("Page title is: " + driver.getTitle()); WebElement element = driver.findElement(By.name("q")); element.sendKeys("Cheese!"); element.submit(); saveScreenshot(driver,new File("C:\\oper\\Java\\selenium\\sample1.png")); driver.quit(); } private static void saveScreenshot(WebDriver driver ,File saveFile){ try { if(driver instanceof TakesScreenshot) { File tmpFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileHandler.copy(tmpFile, saveFile); } } catch(Exception e) { throw new RuntimeException(e); } } }
IEで操作するところまでできたが、動作がめちゃめちゃ遅い。特に文字入力作業のところ。。これでは、大規模開発テストではかなり心配。。
今後やること
・Maven化
・Junit化
・SeleniumIDE→Javaへの動作運用検討
・画面キャプチャ切れてしまうのでは?の確認
・動作早くする余地がないかの確認。
Seleniumメモ
最終的にやりたいこと。
JenkinsでテストJob管理
Jenkins→ビルド→Junitテスト→Selenium実行
テストエビデンスとしてSelenium実行結果はJenkinsジョブ結果から履歴参照したい。
Selenium実行の対象ブラウザはIE11としたい。
ここでつまずいていること。Seleniumでキャプチャを取るデフォルトのコマンドである、captureEntirePageScreenshotがIEでは使えない。
実際に使ってみても、このブラウザでは使えないよ、エラーが。。
色々Webで検索してみると、snapsIEを使う方法が有名のよう。だけど、情報が古い&
インストールが面倒。。
ひとまず、captureScreenshotコマンドベースで実施できないか、確認する予定。
これでだめなら、Seleniumの外から動画とったり、、が最終手段か。
jjugナイトセミナークラウドプラットフォーム特集 1
heroku
- あまり知られていないが、salesforceファミリー(買収済)
- 違いはコーディングレスか、プログラミング支援か
- 12factor applicationの考え方を踏襲
- ローカル環境でも動かすことが可能
- gitにpushするだけで、シームレスにデプロイまで可能
- maven gradleの設定ファイルを自動で読み込むアーキテクチャ
AmazonWebService
- beanstalkがベストプラクティス
- 中身はec2やs3など、既存サービスの集合体
- ボンネットを開けられるという表現をしているように、中の透明度は高い
- lambdaはイベントハンドライメージ。課金安い
JasperReports調査
OSS帳票製品に関する調査
もっとも有名な、JasperReports
ただし、中身としては,PDFに関するコアな部分はiTextに委譲しており、
iTextはライセンス上の懸念がある様子。
JasperReportsで帳票出力してみた | Developers.IO
ただし、現時点のJasperReportをDLしてきて内容を確認したところ、
まだiTextのバージョンは2.1.7のため、AGPLのものではなかった。
一方、iTextのサイトを見ると、
以下のFAQもあり、危険な感じ。。
http://developers.itextpdf.com/question/can-itext-217-or-earlier-be-used-commercially
iTextのGitHubを見ても、2系は7 Jul 2009 の2.1.7 で終わっており、
その後は5系のみ、、といった様子。
https://github.com/itext/itextpdf/tags?after=5.0.4
やはり、新規で今JasperReportを使うのは危険か。
他の選択肢は、ApachePDFBoxか。。
ソースコードの貼り付けサンプル
こんな感じでソースやログなどを貼り付ける。
HTML編集タグを選択し、<pre>タグで囲ってソースを貼り付けることで可能
サンプル↓
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/');
このBlogで書きたいこと
このBlogでは
・興味のある技術のまとめ
・ネタになりそうな話題
を中心にUpしていく予定。