UWSCでSeleniumを動かす

最近しごとでpython書いてます
pythonでSeleniumを動かしてます
python楽しいです

pythonはScriptControlで呼べます
つまりUWSCでSeleniumが動きます
よってUWSCでChromeやFirefoxが操作できます

やったね☆

※この記事はわりとかなりきっとたぶん無駄です

Windows用のpythonをインストールしたあとpywinを入れるか、ActivePythonを入れるかするとScriptControlでpythonが呼べるようになります
python用のSeleniumをがんばってインストールすれば準備完了!
あ、あと各ブラウザ用のWebDriverの実行ファイルも必要だった

sc = createoleobj("ScriptControl")
sc.language = "python"
py = sc.CodeObject

try
    try
        sc.ExecuteStatement(code)
    
        py.run_chrome_driver()
        print py.get_browser_name()

        py.get("https://google.co.jp")
        q = py.find_element_by_name("q")
        msgbox( py.get_attribute(q, "id") )
    except
        e = sc.Error
        print
        print "--------------------------------------"
        print TRY_ERRLINE
        print TRY_ERRMSG
        if e.number then
            print
            print "[" + e.Number + "] " + e.Source
            print
            print replace(e.Description, chr(10), "<#CR>")
            print "[Line: " + e.Line + "] " + e.Text
        endif
        print "--------------------------------------"
    endtry
finally
    py.quit()
endtry

textblock code
from selenium import webdriver driver = None elements = {} def run_chrome_driver(): global driver driver = webdriver.chrome.webdriver.WebDriver() def get_browser_name(): return driver.name def quit(): driver.quit() def get(uri): driver.get(uri) def find_element_by_name(name, key=None): if not key: key = name elements[key] = driver.find_element_by_name(name) return key def get_attribute(key, attribute): return elements[key].get_attribute(attribute)
endtextblock

まったく労力に見合わないのがすげぇ
pythonだけで書いたほうがよっぽど早いし簡単です
なんつってもpython世界からUWSC側に大半のオブジェクトが持ってこれない!
(文字列とか数値とかそのくらいなら持ってこれる)
先ずこの時点で終わってますね!

WebDriverを入れとくdriverとWebElementを入れとくelementsをpython側に準備しときます
こいつらはglobal変数です、つらい
あとはSeleniumで何かしたくなる度にラッパー関数を定義していきます
driverとelementsをうまい感じに使いましょう
UWSCからはそれらの関数を呼ぶことしか出来ません
関数の戻り値には気を付けるんだぞ!うっかりしたもん返すとすぐエラーになるぞ!

UWSCでSeleniumを動かす」への1件のフィードバック

  1. ピンバック: UWSCでSelenium、ちゃんとしたやつ | たっぷす庵

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中