0

統合テストにセレンを使用しているWebサイトがあります。

ページから複数の変数を使用して生成されたリンクがあります。可能な限りダウンロードポップアップボックスが表示されていることを確認したいのですが、シミュレートしているときにリンクをクリックしてファイルをダウンロードします。

私は私のためにそれをするJsUnitを持つことができることを知っています。

何か案は?

4

2 に答える 2

1

Seleniumは、ダウンロードを操作するときにお粗末です。リンクをクリックすると問題が発生します。

ただし、指定されたリンクに対してHttpURLConnectionApache HttpComponents(またはファイルがURLを通過するだけ)を使用して要求を行い、200 OK応答をアサートすることはできます。または、ファイルを取得してみてください。これは、Seleniumでこれを行うための私のお気に入りのツールです。

于 2012-04-17T14:06:05.947 に答える
1

ThnxからSlanecまで私はあなたの例を取り上げました。

調査の結果、最善の解決策はこの方針に沿ったものになると判断しました。

    public int GetFileLenghtFromUrlLocation(string location)
    {
        int len = 0;
        int timeoutInSeconds = 5;

        // paranoid check for null value
        if (string.IsNullOrEmpty(location)) return 0;

        // Create a web request to the URL
        HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(location);
        myRequest.Timeout = timeoutInSeconds * 1000;
        myRequest.AddRange(1024);
        try
        {
            // Get the web response
            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();

            // Make sure the response is valid
            if (HttpStatusCode.OK == myResponse.StatusCode)
            {
                // Open the response stream
                using (Stream myResponseStream = myResponse.GetResponseStream())
                {
                    if (myResponseStream == null) return 0;

                    using (StreamReader rdr = new StreamReader(myResponseStream))
                    {
                        len = rdr.ReadToEnd().Length;
                    }
                }
            }
        }
        catch (Exception err)
        {
            throw new Exception("Error saving file from URL:" + err.Message, err);
        }

        return len;
    }
于 2012-04-18T09:22:51.750 に答える