Ruby版Seleniumで定義されているエラーコードをRescueで指定したいと思っています。エラーコードはGithubにも記載があります。
この中にある「NoSuchElementError」が起きた場合に特定の処理を行いたいと思いRescueで指定していたのですが、どうやらエラーを拾ってくれないようでした。
おかしいな、と思い以下の簡単なコードで試してみたのですが、どうやらこちらでも拾ってくれないようです。
ruby
1require 'selenium-webdriver' 2 3def test 4 begin 5 # 必ずエラーになる 6 @d.find_element(:class, 'test').click 7 rescue NoSuchElementError 8 p 'no such element error' 9 rescue 10 p 'error' 11 end 12end 13 14@d = Selenium::WebDriver.for :chrome 15@d.get('https://www.google.co.jp') 16 17# 関数を実行 18test
結果
terminal
1DevTools listening on ws://127.0.0.1:50350/devtools/browser/ab7c1937-722d-4fcf-9ca7-43a3682e7c6a 2Traceback (most recent call last): 3 2: from test.rb:16:in `<main>' 4 1: from test.rb:3:in `test' 5test.rb:7:in `rescue in test': uninitialized constant NoSuchElementError (NameError)
自分のエラーコードの書き方に問題があるのかと思い、「StarndardError」などでテストしてみた結果、こちらではうまく機能しました。
今回のSeleniumで定義されたエラーコードが指定できない理由は何なんでしょうか?また、どのようにして指定することでSeleniumのエラーコードを自由自在に扱うことができますか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/25 00:10