VB.netでSelenium

準備編

プロジェクトでの準備

  • 参照の追加をする
    • ダウンロードしたSeleniumのモジュールの中を解凍して、プロジェクトのフォルダのどこかに置く
    • Visual Studio のメニューから「プロジェクト → 参照の追加」を選択します。
    • 「参照マネージャ」ダイアログが開くので、展開したファイルのうち、以下をまとめて参照します。
      • Selenium.WebDriverBackedSelenium.dll
      • ThoughtWorks.Selenium.Core.dll
      • WebDriver.dll
      • WebDriver.Support.dll

サンプルコード

Imports OpenQA.Selenium
Imports OpenQA.Selenium.PhantomJS

Module Module1

    Sub Main()

        Dim WebD As IWebDriver

        WebD = New IE.InternetExplorerDriver()

        SearchGoogle(WebD) 

        WebD.Close()
        WebD.Quit()
        WebD = Nothing

    End Sub

   Sub SearchGoogle(aObj As IWebDriver)

        aObj.Url = "https://www.google.co.jp"

        Dim element As IWebElement
        element = aObj.FindElement(By.Name("q"))

        element.SendKeys("Cheese!")
        element.Submit()

    End Sub
End Module

IE で「NoSuchElementException」エラーになってしまう場合

IEDriverServer を正しい位置に配置し、サンプルコードにも問題が無いのに IE でのみ、「NoSuchElementException」が発生する場合があります。この場合は IE のインターネットオプションからセキュリティタブを選択し、全てのセキュリティゾーンに対して「保護モードを有効にする」へチェックしておきます。

f:id:shikaku:20170224173417p:plain

ExcelVBAでJSONを扱うためのモジュール「VBA-JSON」

https://github.com/VBA-tools/VBA-JSON

使い方のサンプル

連想配列 Dictionary と、可変配列 Collection を使って JSONオブジェクトにデータをセットする
 '---------------------------------
 ' リクエストパラメタ生成
 '---------------------------------
 Dim JsonObject As Object
 Set JsonObject = New Dictionary

 JsonObject.Add "id", 1

 JsonObject.Add "name", "John Smith"

 JsonObject.Add "friend_ids", New Collection
 JsonObject("friend_ids").Add 10
 JsonObject("friend_ids").Add 20
 JsonObject("friend_ids").Add 30

 JsonObject.Add "shipTo", New Dictionary
 JsonObject("shipTo").Add "name", "Appirits Inc."
 JsonObject("shipTo").Add "address", "5F Kyocera-Harajuku Bldg. 6-27-8, Jingumae, Shibuya-ku"
 JsonObject("shipTo").Add "city", "Tokyo"
 JsonObject("shipTo").Add "state", "Japan"
 JsonObject("shipTo").Add "zip", "150-0001"

 ' イミディエイトウィンドウで確認(デバック用)
 Debug.Print JsonConverter.ConvertToJson(JsonObject, Whitespace:=2)

Dictionary を使うには参照設定で「Microsoft Scripting Runtime」をONにする
f:id:shikaku:20190312140956p:plain

HTC Viveが認識しなくなった際の対応方法

USB3.1接続からUSB2.0接続へ変更する
HTC ViveのUSBドライバを削除する
ドライバを再インストールする
ダイレクトモードになっているか確認する
ケーブルをディスプレイポートケーブルからHDMIに変更する
CPU内蔵のGPU(マザーボードから出力)を利用しない
OSをWindows10にクリーンインストールする
Windowsのユーザー名を半角英数に変更する
デュアル(マルチ)モニタを利用しない
グラフィックドライバを最新にする、SLIを一時的に無効にする
ASUS AI Suiteを無効化する


ネタ元

IEがinput type=imageのvalueを無視する件

はまった・・・。まさかIE限定とは。

inputタグにおいて、type="image"の場合、IEでは、先ほどの「back=戻る」や「send=送信」がパラメータとして渡されないからです。。(valueの値が無視される)

これはわりとメジャーなIEのバグ?とはいえ、最初に出くわしたときは、気がつくまで結構なハマりどころだと思います。

ネタ元

動画ゲッター

動画ファイルを自動的に検知して、ダウンロードすることが出来るGoogleChrome拡張です。
閲覧しているサイトに動画ファイルが存在している場合に、お知らせをしてくれます。
リファラーとユーザーエージェントの書き換えを行いダウンロードすることもできます。
さまざまな動画形式に対応しています。

動画を含むページを閲覧すると
f:id:shikaku:20170125103308p:plain

アクションボタンに通知されます
f:id:shikaku:20170125103311p:plain

ネタ元