ValueError: url is invalid

robotframework
本ページはプロモーションが含まれています

はじめに

以前にrobotframeworkのWebSocketClientを使った際にエラーが出ましたが、今回はその時と似た状況でのエラーについてです。
(WebSocketClientはpythonのwebsocket-clientをrobotframework上でも使えるようにしたものです)

ソースコード&エラー

エラーはWebSocketClientにあるサンプルソースを動かそうとした時に起きました。
サンプルソースは次の通りです。

# socket_test.robot
*** Settings ***
Library WebSocketClient

*** Variables ***

*** Keywords ***

*** Test Cases ***
Echo
    ${my_websocket}= WebSocketClient.Connect 127\.0\.0\.1
    WebSocketClient.Send ${my_websocket} Hello
    ${result}= WebSocketClient.Recv ${my_websocket}
    Should Be Equal Hello ${result}
    WebSocketClient.Close ${my_websocket}

これを実行すると

==============================================================================
Socket Test
==============================================================================
Echo | FAIL |
ValueError: url is invalid
------------------------------------------------------------------------------
Socket Test | FAIL |
1 test, 0 passed, 1 failed
==============================================================================

とエラーに。

エラー内容はシンプルで
「URLが無効です」
となります。

理由も単純で11行目のIPアドレスのエスケープシーケンスである「/」が不要でした。
これを除去すると問題なく動くようになりました。

さいごに

今回はWebSocketClientのサンプルソースを利用した際に起きたエラーについてでした。
robotframeworkは「.」などはエスケープが必要ですが、WebSocketClientの引数では不要です。
今回はエラーから原因が予想しやすかったですが、こうした表記の違いはrobotframeworkはよくあるので注意が必要ですね。
(WebSocketClientは公式サイトに記載がほぼないのも今回のエラーの原因でした)

この記事がお役に立ったのなら嬉しいです。
最後までお読みいただきありがとうございます。

タイトルとURLをコピーしました