2017-04-19 16 views
0

3時間以上立ち往生している問題については、本当に助けが必要です。 IEを開いてURLに移動するVBAコードがあります。 コードIは、Microsoft Visual Basicの中にそれをテストするときに動作するようです:VBAコードがUFTで動作しない

Sub test() 
    On Error Resume Next 
     Set app = CreateObject("InternetExplorer.Application") 
     MsgBox "OpenWindow 1 : " & Err.Number 
     app.Visible = True 
     app.Navigate ("salut.com") 
     result = Err.Number 
     MsgBox "OpenWindow 2 : " & Err.Number 
    On Error GoTo 0 
    If result <> 0 Then 
     Call test 
    End If 
End Sub 

このコードは、マクロExcelで正常に動作しますが、私はUFTの正確な同じコード(統一Functionnalテスト)を実行するたびに、それはエラーをスローします。

ナビゲート後のCreateObject(?)
  • エラー238の後
    • エラー-2147467261
    ( のCreateObjectが失敗したので、私は思う非常に正常です)

    コード全く同じで、私はちょうど関数にまでナビゲートするURLを渡します。

    Function openWindow(url) 
        On error resume next 
         Set app = CreateObject("InternetExplorer.Application") 
         app.Visible = true 
         app.Navigate(url) 
         result = Err.number 
        On error goto 0 
        If result <> 0 Then 
         openWindow (url) 
        End If 
    End Function 
    

    は、私は本当に問題が何であるかの見当がつかない...

  • +1

    私はhttp://stackoverflow.com/documentation/vba/1179/procedure-calls/3818/this-is-confusing-why-not-just-(あなたが[この]を読みたいと思うかもしれないと思います常用括弧#t = 201704191432562970515)。そして 'url'を' ByVal url As String'と宣言して、関数は 'String'だけを取ることができます。現在、私たちは 'Navigate'呼び出しが処理できない何かを与えているので、' Navigate'呼び出しが失敗しているかどうかは分かりません。明示的な 'String'パラメータは物事をあいまいにしません。 UFTは 'CreateObject'呼び出しを処理できないようですか? –

    +1

    私は決してUFTを使用しませんでしたが、プログラミング標準では変数を宣言し(各モジュールの最上部で 'Option Explicit'を指定する)、' app'は 'openWindow'関数の依存性ですそれは何も返されていないのでプロシージャ。独自の依存関係を作成するのではなく、引数として注入する必要があります。また、自動テストでは、メソッドが動作するために必要なインターフェースを擬似/模擬的に実装する必要があります。 [これはあなたに興味があるかもしれません](https://rubberduckvba.wordpress.com/2017/03/17/go-ahead-mock-vba/)。 –

    +1

    またあなたの関数は再帰的であり、無効な 'url'が与えられたとき、あるいは* anything *が間違っているときに常にコールスタックを爆破します。 –

    答えて

    0

    を私は回避策を見つけました:

    Function openWindow(urlToNavigate) 
        SystemUtil.Run "iexplore.exe",urlToNavigate 
    End Function 
    
    関連する問題