わんすけに聞いてみる WinActor Chrome操作-クリック『ライブラリ実行(spv_Web)に失敗しました。』

Chrome操作-クリック『ライブラリ実行(spv_Web)に失敗しました。』

実は、以前にもspv_Web関連のエラー記事書いたことあったんだけども、そん時はEdgeでそもそも何にも操作ができないってシーンでした。

Edge自動操作で『ライブラリ実行(spv_Web)に失敗しました。』

 

今回は、Chromeのブラウザ操作でクリックの操作で限定的なシーンで出るエラーがあったので紹介します。

 

1.Chrome クリックでエラーになるケース

ざっくり言うと、こんなレイアウトで発生しやすいみたいだ。

ページ自体にもスクロールバーがでるくらいの長さのページで、コンテンツの中にもスクロールするコンテンツがある。

ほんで、スクロールする内部スクロールの中にボタンとかがあって、操作後にフォーカスがそこに残るケース。

で、内部スクロールの部分にある要素にフォーカスが残った状態で、ページ自体のスクロールでページ表示外にある要素をクリックしようとした際にエラーが発生しました。
 

 

2.調査のやり方

困ったことに、ブラウザ操作でエラーが発生すると

『ライブラリ実行(spv_Web)に失敗しました。』

しか出ないんですねぇ。。。

原因がわかんないんですよ。なので、このエラーが発生する箇所に例外処理を仕込んで、異常系の方で[01 WinActor制御] - [07 デバッグ] - [SPVエラー情報収集]を使います。

すると、クリップボードの中にWebDriverが出力してるエラーの生ログが取得できます。

WebDriver????もし、もっと詳しく知りたいって方はこちらの記事もどぞー。

(エラー内容の本筋からズレるので興味なければスルーでOK。)

WebDriverをプロンプトで検証する。

PowerShellでSelenium使わずWebDriver操作

 

要するに、ブラウザ操作まわりの機能はブラウザベンダーが提供してるWebDriverを噛ませて実装してるのでWinActorの制御外なんですねー。

ほんで、先ほどの「SPVエラー情報収集」を使ってエラーログを取得する訳ですが、いきなりエラーの内容に「unknown error・・・」とかって出ちゃってる場合はWebDriverの差替えを行ってください。

Chromeなんかは、結構知らない間にブラウザのバージョン上がってたりして、WinActor内部に保管されてるWebDriverは勝手にアップデートされる訳ではないので、ほっとくとブラウザとWebDriverの適用バージョンが合わなくなってしまっていたりします。

で、今回のケースではWebDriverを最新化してみたら「element not interactable ・・・」っていうエラーが出てましたってお話な訳です。

 

3.element not interactable????

こっからは、WebDriverで出力してるエラーなんだから他のツールであろうが理由と対処は一緒でしょー?って話で、そのままググるとSeleniumで同様の事象がでて別アプローチで対処したって話がでてくる訳なのね。

seleniumにてButtonがクリックできない時の対処法 - Qiita

ちなみに、WebDriverの歴史的にはSeleniumの方が元祖なのね。

ブラウザ操作系は検索するとSeleniumの情報ばっかでてくるけど、他のRPAツールでも流用できる情報はとても多いです。


 

今回のケースで言うと、本来はWebDriver経由でクリックの命令を出すとそのポイントまで画面をスクロールして、表示状態になってからクリックする。という処理を行っている訳だけど、内部のスクロール範囲にフォーカスが残ってるケースで稀に親のスクロールを動かせずにクリック対象のボタンを表示状態にできず、エラーになったって感じなんじゃないかと思う訳です。

 

そんな仮説の元、とりあえずクリックの前にエミュレーションで画面の任意の位置をクリック後、キーボードのHomeキーを押すっていうノードを置いたところ、エラーの再発は無くなりましたとさ。。。

 

んー、だめだ。
このページの上の方にボタン作って、下にスクロールするテーブル作ってみたけどエラー出ないや?
状況を再現できないなぁ?

 

タイトル タイトル タイトル タイトル タイトル

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

データ

わんすけへ寄付金を送る

このサイトの情報が役に立ったなーって思う方がいらっしゃれば、

是非「わんすけに缶コーヒー1本でもご馳走する」気持ちでポチってあげて下さい?

¥120

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Related Post

[WinActor]ブラウザ関連 値を取得して更新して更新ログ残す。[WinActor]ブラウザ関連 値を取得して更新して更新ログ残す。

ブラウザ関連で、設定値の一覧から順番にデータを検索・更新するんだけど システム側の値を更新した時は更新した個所のログが欲しいって場合の話。 普通にサブルーチングループ使って実装せいって話なんだけど ブラウザ関連のライブラ […]