今回は画面キャプチャを毎回とるのがめんどくさかったため、Seleniumを使って自動化してみます。 使う言語はC#でやってみます。 1. VisualStudioプロジェクトを作る まずはVisual Studio 2015を使ってプロジェクトを作ります。 今回は、テンプレートはコンソールアプリケーションを選択します。 テストに使いたい場合は、テストアプリケーションを使うのもおすすめです。 というか通常は後者のほうが多いと思います。今回は動作確認をしたいだけなので、コンソールアプリでサクっと作ります。 2. nugetを使って、Seleniumをインストールする メニューバーから「プロジェクト > NuGetパッケージ管理」をクリックします。 「Selenium」で検索して、「Selenium WebDriver 」をサクッとインストールします。 3. Mainメソッド作る 今回は単純に1
概要 注意: 2010年10月時点での CTP (community technology preview)版を元にした記事になっています。 製品版までに変更の可能性があります。 (async や await というキーワードも変更される可能性あり。) Ver. 5.0 スレッドを使った非同期処理を行いたい動機としては、以下の2つが挙げられます。 非ブロッキング処理: I/O 待ちとかで UI スレッドをフリーズさせないようにする 並列処理: マルチコアを活かした並列処理でパフォーマンス向上 このうち、並列処理に関しては、Parallel クラスや Parallel LINQ で簡単に対応可能 (ラムダ式や LINQ を使えば、並列じゃない場合とほとんど変わらず書けます。 参考: 「[雑記] スレッド プールとタスク」)。 一方の、非ブロッキング処理は、今までは結構面倒だったものの、 as
はじめに Web関連のお仕事中ですが、なぜかC#を使うことになりネットで検索しながら対応しました。 ですが、案外と古い情報ばかりで答えに到達できずに少し苦労しましたので、最新の情報に更新したいと思います。 目的 C#で特定のWebサイトをスクレイピングして、サイト内のURLを取得し、そのリンク先にあるzipファイルをダウンロード。。。 月次、日次や週次処理として自動化することが目的です。 使っていること C# (.Net 4.7.x) Visual Studio 2017を使用 AngleSharp 0.13.0.0 (2019/10現在の最新を使用) System.IO.Compression.FileSystem (Zipファイルを解凍するのに使用) インストールなど Visual Studio 2017の NuGetからインストールします。 ※ 詳細は割愛します。 System.IO
以前pythonでブラウザの自動制御を試しましたが、その時使ったseleniumは他のプログラミング言語にもパッケージが提供されています。 s51517765.hatenadiary.jp s51517765.hatenadiary.jp そこで、C#でseleniumを使ってみました。 Visual Studioでseleniumを設定するVisual Studioで「プロジェクト¥NuGetパッケージの管理」を開きます。 「参照」から"selenium"を検索します。 必須となるのは以下の二つです。(ここではChromeを使いましたが、他のブラウザの場合は対応するもの) Selenium.WebDriver Selenium.WebDriver.ChromeDriver これに以下の二つを追加しました。 Selenium.Support Selenium.WebDriverBacked
public: property System::String ^ BaseDirectory { System::String ^ get(); }; public string BaseDirectory { get; } public string? BaseDirectory { get; } member this.BaseDirectory : string Public ReadOnly Property BaseDirectory As String プロパティ値 String アセンブリを探すためにアセンブリ リゾルバーが使用するベース ディレクトリ。 実装 例 次のコード例では、新しいアプリケーション ドメインを作成し、ドメインに読み込むアセンブリを検索するときに使用するベース ディレクトリを指定します。 次に、このプロパティを BaseDirectory 使用してベー
「単調な Web の試験を自動化したい」と思うことは良くあります。こういった場合は Selenium が便利です。 Selenium の種類 Selenium には歴史的経緯から、以下のような種類があります。今回は Selenium WebDriver を使います。 Selenium 1(通称、「Selenium Remote Control」または「Selenium RC」) JavaScript として実装されている ブラウザ毎に共通実装なので、「あるブラウザでは動作するが、別のブラウザでは動作しない」という、ブラウザ毎の JavaScript 実装差異の影響を受ける可能性がある ブラウザのサンドボックスにロードされ、実行される。つまり、サンドボックスの制限を受ける Selenium 2(通称、「Selenium WebDriver」または「WebDriver」) ブラウザ毎にドライバ
C#、ASP.NET、TypeScript、Angular を中心にプログラミングに関した話題を諸々。 by @jsakamoto
おっ、エラーがでているお(^ω^ = ^ω^) // log.priceはLong型で、priceMap.get("price")はint型なのでコンパイルできない log.price = priceMap.get("price"); んで、修正プログラムを用意したらエラーががが log.price = Integer.parseInt(priceMap.get("price").toString()); [ClassCastException: java.lang.Long cannot be cast to java.lang.Integer] いまいちよくわかっていないが、モデル変数のlog.priceがLong型なのが影響しているらしい。 こうしたら治った log.price = Integer.parseInt(priceMap.get("price").toString());
// 指定のウィンドウサイズに変更 int width = 1000; int height = 500; driver.manage().window().setSize(new Dimension(width, height)); // 最大化 driver.manage().window().maximize(); Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationWhat you can do with signing up
はじめに こんにちは。QAの@mochioです。 本記事はLIFULL Advent Calendar 2017 20日目の記事になります。 業務で自動テストを実施しておりまして、そこでSeleniumを使っております。 Seleniumに関してはいろんな記事に書かれておりますのでそちらをご参照ください。 言語間で書き方が少し違うのもあったりしてごっちゃになるのでその整理のために作りました。 特定のURLでブラウザを起動する
仕事で使うかもしれなさそう…ということで、Selenium WebDriverを使ってみました。初めて触ってみたのですが、けっこう便利そうですね。 とりあえず、使ってみる 公式ドキュメントの写経+Maven、JUnitと一緒に使ってみることにします。 こんなpom.xmlを用意。 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>webdriver.exa
ことの発端 フレームセットを使用したサイトのテストにおいて、操作を確認するためにスクリーンショットを撮ることにした。 File file = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(file, new File(path)); TakesScreenshot screen = (TakesScreenshot)driver; Path capture = captureDirectory.resolve(fileName); Files.write(capture, screen.getScreenshotAs(OutputType.BYTES)); 違いはテンポラリーに出力された画像をコピーするか、自分で書き出すかという点。 さて、これを使って取得したスクリーンショット
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く