UwscWebDriver

ダウンロード方法

GitHub – stuncloud/UwscWebDriver: UWSCでWebDriverを使ってブラウザを操作するためのモジュール

Code→Download ZIPからダウンロード

CALL UwscWebDriver.uws

WebDriverDownload.Chrome(83)           // Chromeのバージョンを指定
WebDriverDownload.ChromiumEdge(86)     // Chromium Edge(新Edge)のバージョンを指定
WebDriverDownload.EdgeLegacy()         // 旧Edge
WebDriverDownload.Firefox(64)          // Firefoxのバージョンを指定

ダウンロードされるファイル

上記プログラムを実行したときにダウンロードされるファイルです。引数に指定したバージョンによってzipファイルは値が変わるかもしれないです。ダウンロードされるフォルダは実行した場所です。

Chrome
WebDriverDownload.Chrome(83)
    • chromedriver.exe
    • chromedriver_win32.zip
Edge
WebDriverDownload.ChromiumEdge(86)
    • msedgedriver.exe
    • msedgedriver.zip
Firefox
WebDriverDownload.Firefox(64)
    • geckodriver.exe
    • geckodriver-v0.27.0-win64.zip

バージョンの確認方法

Google Chrome

ブラウザを起動→メニュー→ヘルプ→Google Chromeについて

Chromium

ブラウザを起動→メニュー→Chromiumについて

旧Edge

ブラウザを起動→メニュー→設定→全般の一番下の「このアプリについて」

Firefox

ブラウザを起動→メニュー→ヘルプ→Firefoxについて

UWSCWebDriverをどのフォルダにおいても呼び出せるようにする

UWSCWebdriverは呼び出すプログラムと同じフォルダに置かないと実行できませんが、exeファイルのパスを相対パスから絶対パスに書き換えることで違うフォルダからも呼び出せるようになります。

module WebDriver
    const MODULE_VERSION = “0.4.1”

    dim debug = FALSE
    dim showcmd = TRUE
    const Chrome       = “chromedriver.exe”
    const Firefox      = “geckodriver.exe”
    const Edge         = “msedgedriver.exe”
    const ChromiumEdge = “msedgedriver.exe”
    const EdgeLegacy   = “MicrosoftWebDriver.exe”

プログラムを以下のように書き換える。

module WebDriver
    const MODULE_VERSION = “0.4.1”

    dim debug = FALSE
    dim showcmd = TRUE
    dim folderspec = “UwscWebDriverのフォルダを指定”
    const Chrome       = folderspec + “chromedriver.exe”
    const Firefox      = folderspec + “geckodriver.exe”
    const Edge         = folderspec + “msedgedriver.exe”
    const ChromiumEdge = folderspec + “msedgedriver.exe”
    const EdgeLegacy   = folderspec + “MicrosoftWebDriver.exe”

UwscWebDriver.uwsも相対パスから絶対パスにすることで同じフォルダになくても呼び出すことができます。

CALL UwscWebDriver.uws
CALL “D:\Programs\UwscWebDriver-master\UwscWebDriver.uws”

ブラウザが起動しないとき

ダウンロードしたファイルのバージョンが違うので、ファイルをダウンロードし直す。

WebDriver.Chrome()
WebDriver.Firefox()
WebDriver.ChromiumEdge()
WebDriver.ChromiumLegacy()

WebDriverモジュール

WebDriver.Debug()

モジュールのバージョンを返す。

WebDriver.Version()

コマンドプロンプトを表示するか。

WebDriver.HideCmd()

Chromeを起動。

WebDriver.Chrome(port = 9515, capabilities = ChromeCapabilities)

Edgeを起動。

WebDriver.ChromiumEdge(port = 9515, capabilities = ChromeCapabilities)

Edgeを起動。

WebDriver.Edge(port = 9515, capabilities = ChromeCapabilities)

Edgeを起動。

WebDriver.EdgeLegacy(port = 9515, capabilities = EdgeCapabilities

Firefoxを起動。

WebDriver.Firefox(port = 9515, capabilities = ChromeCapabilities)
Start(driverpath, port = 9515, option = EMPTY)

WebDriver.Remote(remotehost, port, capabilities)

WebDriver.Connect(session)

WebDriver.CreateJSArray()

WebDriver.ParseJson(json)

WebDriver.StringifyJson(obj)

WebDriver.GetLog()

WebDriver.ClearLog()

WebDriver.Option(browser)

UwscWebDriverの使い方がまだよくわからないから、とりあえず個別ページを作るまでの間メモ程度にプログラム書いとく。

Yahoo!検索

CALL UwscWebDriver.uws

driver = WebDriver.Chrome()

driver.Navigate(“http://yahoo.co.jp”)
element = driver.FindElement(“input[name=<#DBL>p<#DBL>]”)   // document.querySelector
element.SetValue(“UWSC”)

element = driver.FindElement(“button[type=<#DBL>submit<#DBL>]”)
element.Click()

要素取得

idがToolListのテキストを取得。

CALL UwscWebDriver.uws

driver = WebDriver.Chrome()

driver.Navigate(“http://yahoo.co.jp”)
PRINT driver.FindElement(By.id(“ToolList”)).getText()   // element = document.getElementById(“ToolList”) element.innerText

新しいタブを操作

CALL UwscWebDriver.uws

DIM driver = WebDriver.Chrome()
driver.Navigate(“http://google.com”)

hFirst = driver.GetCurrentWindowHandle()

driver.Navigate(“http://yahoo.co.jp”, “SecondTab”)

hSecond = driver.SwitchWindow(“secondTab”)
// driver.quit()

driver.SwitchWindow(hFirst)
driver.Navigate(“http://example.com”)

FindElementで要素の取得

CALL UwscWebDriver.uws

DIM driver = WebDriver.Chrome()
driver.Navigate(“http://yahoo.co.jp”)

DIM elements, element

element = driver.FindElement(By.Id(“ToolList”))   // element = document.getElementById(“ToolList”)
elements = element.FindElements(By.Tag(“li”))     // elements = element.getElementsByTagName(“li”)

FOR element IN elements
	PRINT element.getText()   // element.innerText
NEXT
結果
ショッピング
PayPayモール
ヤフオク!
PayPayフリマ
ZOZOTOWN
LOHACO
トラベル
一休.com
一休.comレストラン
出前館
ニュース
天気・災害
スポーツナビ
ファイナンス
テレビ
映画
GYAO!
LINE MUSIC
ゲーム
ebookjapan
占い
地図
路線情報
Retty
クラシル
スタンバイ
不動産
自動車
TRILL
mybest

要素をクリック(FOR-IN-NEXT)

CALL UwscWebDriver.uws

DIM driver = WebDriver.Chrome()
driver.Navigate(“http://yahoo.co.jp”)

DIM elements, element

element = driver.FindElement(By.Id(“ToolList”))
elements = element.FindElements(By.Tag(“li”))

FOR element IN elements
	IF element.getText() = “ZOZOTOWN” THEN element.click()
NEXT

要素をクリック(配列)

CALL UwscWebDriver.uws

DIM driver = WebDriver.Chrome()
driver.Navigate(“http://yahoo.co.jp”)

DIM elements, element

element = driver.FindElement(By.Id(“ToolList”))
elements = element.FindElements(By.Tag(“li”))

elements[0].click()