「VisualStudio2017」カテゴリーアーカイブ

C#+Selenium+Chrome 実行時に謎のエラーが発生:unknown error: cannot parse internal JSON template: Line: 1, column: 1, Unexpected token.


C#で作成したWindows アプリを使用してGoogle Chromeを操縦しているとなぜか突然

unknown error: cannot parse internal JSON template: Line: 1, column: 1, Unexpected token.

このエラーが出る様になりました。

デスクトップPCでエラーは出ておらず、なぜかノートPCで発生する状況が続いていました。

Visual Studio、Google Chrome・・・

色々試しました。解決は本当に大変でした。

最悪ノートPCのハード的な問題が原因だと思ってPC買い替えまで考えてました。これで10万浮いたー。

ですが、このエラーの原因はSeleniumでChromeを操縦する時に使用していたディレクトリ中のファイルが何等かの原因で破損していた事が原因でした。

一旦、

C:\ChromeData

を丸ごと削除した上で、C#(+Selenium)のプログラムを実行したところ正常に動作する様になりました。

 

本当に今回はかなりハマりました。

同じ事象が起きてハマっている方の参考になればと思います。

このブログを書いている2020年8月時点で、このエラーについて解説しているサイトは1つもありませんでした。

 


Visual Studio 2017でSelenium(セレニウム)を使う方法の纏め NuGetパッケージ必須だよ


Selenium(セレニウム)とは?

セレニウムとは、C#などのプログラム言語でブラウザ(Cromeなど)を自動操縦する際に使用します。

WEBシステムなどを作った際にテストを人間がちまちまやるよりも、そのテスト自体を自動化させた方が効率が良いです。

その為、WEBサイトのテストなどで使われる事が多いです。

(人様のサイトに悪い事しちゃだめよん♪)

あとは、スクレイピング(WEBサイトのデータを取得すること)などにも便利です。

C#からIEの自動操縦をするだけでもスクレイピングは勿論する事が出来ますが、如何せんMicrosoftの作ったIEです。

品質が悪いです。いろいろとInternet Explorerはダメなんですが一番我慢ならないのはページのロードが遅いという事です。

一回当たりの秒数が少なくても、IEみたくページのロードに時間がいちいち割かれる様だとトータルで時間の浪費になります。

そこでスクレイピングをする場合には、Seleniumを使ってCromeを操作する事をおすすめします。

Visual Studio 2017 + C#のプロジェクトでSeleniumuを使う為に行った作業を自分用にまとめておきます。

あと、Seleniumは最近私も始めた程度なのでそこまで詳しくありません。詳しい人はコメント欄などでTips的に色々と押してくれると嬉しいです。

VS2017でSeleniumを使える様にした手順

まず、最初にプロジェクトの参照の上で右クリック > NuGet パッケージの管理(N)をクリックします。

すると右側にNuGet パッケージ マネージャー

というウィンドウが出てきます。

NuGet

と入力して検索します。

すると

NuGet.Core  作成者:Outercurve Foundation,

というのが出てきます。

これを選択し右側のインストールをクリックします。

この時に開発中のプロジェクトが開いていると

変更のプレビュー

Visual Studio はこのソリューションに変更を加えようとしています。[OK]をクリックすると、以下に一覧表示された変更が適用されます。

インストール中

Microsoft.Web.Xdt.2.1.1
NuGet.Core.2.14.0

今後これを表示しないにチェックを入れてOKボタンを押します。

ライセンスへの同意

以下のパッケージをインストールするには、ライセンス条項に同意する必要があります。

という画面がでたら「同意する」をクリックします。

続いて同じ要領で

web driver

で検索して

Selenium.WebDriver

Selenium.Chrome.WebDriver

Selenium.WebDriver.ChromeDriver

もインストールします。

ここまでインストールして初めて

using OpenQA.Selenium.Chrome;

をソースコードの中に記述してもエラーがVS上に出なくなります。

using 参照でエラーになる人は試してみてください。

ネットでセレニウムの使い方を解説しているサイトを調べてみるとコンソール(Console)アプリケーションでC#+Seleniumの設定方法をまとめているサイトが多かったです。

個人的には、Windows フォームアプリケーションでUIがあった方が管理が楽でいいと思います。

これでガリガリC#+Seleniumのコードをかけます。

頑張りましょう!

 


Visual Studio 2017 ブックマーク機能を使いこなす。


Visual Studio 2017では、以前のVisual Studioとブックマーク系のショートカットコマンドが色々と変わってしまいました。

という事で調べて分かった事とか整理しておきます。

VS 2017を使っていてこのブックマーク機能を使いこなせば生産性が明らかに上がります。

ブックマークウィンドウを表示する

Visual Studio 2017のメニュー  > 表示(V) > その他のウィンドウ(E)  > ブックマーク ウィンドウ(B) 

ブックマークウィンドウという機能があります。

これは私も最近知りました。

これは登録したコード内のブックマークを一覧表示する事が出来ます。どこにブックマークをしたのか一目瞭然で便利なので出しておきましょう。

これがブックマークウィンドウです。

プロジェクトの中で登録済のブックマーク一覧が表示されます。

右クリック > 名前の変更(R)

で、名前の替わりにコメントを入れておくと識別し易くていいです。

左のチェックボックスをON・OFFにすれば自由にブックマークを設定出来ます。

ブックマークのショートカットコマンド

ブックマークを追加する

Control +K > K

もしくは、

Control + B  > T

次のブックマークに移動する

Control + B > N

もしくは、

Control + K > N

前のブックマークに移動する

Control + B > P

もしくは、

Control + K > P

Visual Studio 2017では、なぜかこのコマンドが使えなくなりました。

全てのブックマークを削除する

Control + B > C

このコマンドを実行した場合

確認ダイアログが表示されます。

すべてのブックマークを削除しますか?

消す場合には、はい(Y) をクリックします。

 


Visual Studio 2017 ビルド失敗時に前回ビルドが通ったアプリが起動しない様にする方法


Visual Studio 2017では、ビルドに失敗した状態でデバッグ実行すると、前回ビルドが通った時のモジュールが読み込まれてそのまま中途半端に動いてしまいます。

これは非常に邪魔くさい挙動です。

コードを修正しているのにいざ実行してみると、修正したコードが反映されていない、なぜ???

といった事態が起きる為です。

邪魔なのでビルドが通らない場合には、起動しない様にしておくとよいです。

自動起動しない様にする手順

メニュー > ツール > オプション

プロジェクトおよびソリューション > ビルド/実行

右側にある

実行時に、プロジェクトが最新の状態でないとき(O):

起動しない

に変更すればOKです。

たったこれだけです。

 


【Visual Studio 2017】画面下部分に表示される「準備完了」「ソース管理に追加」の邪魔なバーを消す方法


Visuall Studio 2017はそのままでは、エディタの下部分に

「準備完了」「ソース管理に追加」というダイアログが標準で表示されています。

せっかく画面の配色を黒っぽくしているのに、青背景で無駄なメッセージを表示しており本当に目障りですよね。

邪魔なので早速これも消していきましょう。

手順はこちらです。

ツール > オプション 

オプションダイアログが起動したら

 

環境 > 全般  > (画面右側に表示される)

ステータス バーを表示する(T)

のチェックを外せばOKです。

目障りな機能がVS2017には散見されます。

開発の効率化の為にガシガシそういった物は決していきましょう。


【Visual Studio 2017】ブレークポイントを設定しているのに止まらない場合の対処方法


Visual Studio 2017では、ブレークポイントを設定(F9ボタンの押下)してデバッグ実行をしてもブレークポイントで止まらない事があります。

そんな場合には、以下の手順を行えば止まる様になります。

はっきり言ってVisual Studio 2010の方が使い勝手が良かったです。

メニュー > ツール > オプション

オプションダイアログが軌道したら

デバッグ > 全般

右側にずら~~っといろいろと出てきて探し辛いですが、その中から

元のバージョンと完全に一致するソース ファイルを必要とする

のチェックを外します。

これでブレークポイントが止まる様になります。

 

 


【Visual Studio 2017】Spy++ を使える状態にするには?


Visual Studio2017では、インストールをしてもspy++(スパイプラスプラス)を標準では使えません。

Visual Studio 2010の時には普通に使えたのですが、2017ではオプションになってしまっています。

使う為には以下の手順を行います。

ツール > ツールと機能を取得

画面の指示に従ってモジュールのインストールを進めます。

すると

変更しています – Visual Studio Enterprise 2017 – 15.9.2

というダイアログが起動します。

起動したら

個別のコンポーネントタブを選択します。

続いて

Visual Studio C++ コア機能

にチェックを入れて変更をクリックします。

この時に既にVisual Studioのプロジェクトが起動している場合

開始する前:

次の各プロセスは実行中であり、閉じる必要があります。[続行]を選択して、それらのプロセスの状態を保存してから、インストールの完了時に再起動してください。

 

というダイアログが起動します。

一旦それらを全て閉じます。

再試行をクリックします。するとインストールが開始されます。

インストール済み

Visual Studio Enterprise 2017

15.9.2 

生産性向上と、さまざまな規模のチーム間の調整のための

Microsoft DevOps ソリューション

という画面が表示されたらOKです。

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools

の中に

spyxx.exe

が出来上がります。

右クリックしてスタート画面にピン留めしておくとよいです。

Visual Studio 2017の環境で差分インストールしたSpy++は、Visual Studio 2010の時と比べてアイコンとその名称が変わっています。

VS2017では、

spyxx

となっています。ウィンドウハンドルなどを取得するにあたりspy++自体のUIは特に変わってはいませんでした。

Visual Studio 2017の環境でSpy++を使う方法を詳しく解説しているサイトがなかったのでまとめておきました^^b

もし少しでもこの記事が役になったならば、ぜひシェアでもしてくださいw

 

 


【Visual Studio 2017】個の参照 という邪魔な表記を消す方法


Visual Studio 2017は、そのままではコードエディタを開くと次の様に* 個の参照という邪魔な文言がコード内に自動で挿入されてしまいます。

はっきり言って邪魔なお節介機能です。マイクロソフトはスカイプしかりビジュアルスタジオ然りよく無駄な機能をつけて自己満足しています。

CodeLens(コードレンズ)の表示を消す方法

邪魔なのでこれを消す方法をご紹介します。

メニュー > ツール > オプション

テキストエディター > すべての言語 >Codelens

右側の

CodeLens を有効にする

のチェックを外します。

CodeLens(コードレンズ)機能とは?

Visual Studio2017で搭載されたコードの変更履歴とその変更理由などを開発メンバーに確認を効率よく行える様にした機能だそうです。

はっきり言って無駄な機能であり実用性はありません。

邪魔なので消しておきましょう。

 

本当にマイクロソフトは改悪をするのが好きです。

一例として、もともとエストニアの会社がスカイプを開発しましたがマイクロソフトが買収してから、改悪続きでスカイプが使い辛くなったのは、皆さんもご存じの通りです。

 


【Visual Studio2017】行番号を表示する方法


Visual Studio 2017で行番号を表示する方法

VS2010を使うのに大分慣れているのですが、そろそろ2019年になり古くなってきたのでVisual Studio 2017を使う事にしました。

そこで使い方とか今後まとめていきたいと思います。

では、VS2017(C#で開発)で行番号を表示する方法をまとめていきます。

メニュー > ツール(T) > オプション(O)…

テキストエディター > C# > 全般 >(画面右側にある)行番号(L)にチェックを入れます。

そうするとこんな感じでVS2017にも行番号が表示される様になります。