エラーメッセージ
robotframeworkでseleniumを使っていた時に出たエラーです。
Element with locator ‘name:q’ not found.
‘name:q’の部分は内容によって異なります。
エラーメッセージの原因
SeleniumでWeb上の要素をとってくるにはElementを指定する必要があります。
エレメントはChromeならF12ボタンを押して確認する事ができます。
そしてこのエラーが表示される原因は指定したElement (要素)がないからです
確認用サンプルプログラム
簡単なプログラムで確認します。
YahooJapanの画面で見てみます。
サンプルプログラムではYahooのサイトの検索ボックスにテキストを入力して検索するというものです(エラーがでます)
*** Settings ***
Library SeleniumLibrary
*** Variables ***
${BROWSER} chrome
*** Keywords ***
ブラウザオープン
[Arguments] ${url}
Open Browser ${url} ${BROWSER}
キーワード検索
[Arguments] ${target_word}
# テキストボックスにキーワードを入力する
Input Text name:q ${target_word}
Press Keys name:q RETURN
*** Test Cases ***
Yahoo Japanを開く
ブラウザオープン https://www.yahoo.co.jp/
Yahoo Japanで検索
キーワード検索 robotframework
BuiltIn.Sleep 5
これを実行すると、
==============================================================================
Connect To Yahoo
==============================================================================
Googleを開く | PASS |
------------------------------------------------------------------------------
Googleで検索 | FAIL |
Element with locator 'name:q' not found.
------------------------------------------------------------------------------
Connect To Yahoo | FAIL |
2 tests, 1 passed, 1 failed
==============================================================================
とエラーが表示されます。
F12で開発者モードにして、矢印で検索ボックスのHTML部分をみてもらうとわかりますが、nameは”p”です。
HTMLの要素の内nameがqのものを探そうとして「そんな名前のElement (要素)はないよと言っているわけです。
上のサンプルプログラムの「name:q」を「name:p」にすれば問題なく動くようになります。
エラー自体そんなに難しくはないと思いますが、初めて使う人などには役にたったかと思います。
お役にたったなら嬉しいです。