electron アプリを selenium から操作すると、クリック動作しない場合があります

1,155 views
Skip to first unread message

Yukihiro Sunaga

unread,
Dec 19, 2015, 1:08:51 AM12/19/15
to 日本Seleniumユーザーコミュニティ

概要
  • electron アプリを selenium から操作しようとしたのですが、クリック操作が動作しない・指定とは別の場所がクリック操作される等の場合があります。
  • electron アプリを自分で操作した場合には問題なく動作しています。
何が起きているのか分かる方はいますか?

環境
  • MacBook Pro / OS X Yosemite (10.10.4)
  • Electron
    • v0.33.1
    • v0.36.1
  • ChromeDriver
    • chromedriver-v2.15-darwin-x64
    • chromedriver_mac32_2_20
  • jQuery
    • 1.11.3
詳細

まず、以下の内容の HTML を Electron アプリにしました。

 <html>
   <head>
   ...
   <script>
   window.jQuery = window.$ = require("jquery");
   
   $(function() {
     $("#link1").click(function() {
       $("#status1").text("OK");
     });
   
     $("#link2").click(function() {
       $("#status2").text("OK");
     });
   
     $("#link3").click(function() {
       $("#status3").text("OK");
     });
   });
   </script>
   </head>
   
   <body>
   <span id="status1"></span><a href="#1" id="link1" class="link">link1</a><br>
   <span id="status2"></span><a href="#2" id="link2" class="link">link2</a><br>
   <span id="status3"></span><a href="#3" id="link3" class="link">link3</a><br>
   </body>
 </html>

アプリを起動し、各リンクを押下するとリンクの前に「OK」が表示され、想定通り動いていることを確認しました。

次に、Selenium で以下の ruby コード(抜粋)を書きました。

    ...
   link1 = driver.find_element(:id, 'link1')
   link1.click
   
   sleep(5)
   
   link2 = driver.find_element(:id, 'link2')
   link2.click
   
   sleep(5)
   
   link3 = driver.find_element(:id, 'link3')
   link3.click
   ...

これを実行すると link1, link2 は問題ないのですが、link3 のみ「OK」が表示されません。

何が起きているのか分かる方はいますか?

html, コードに同様の link4 を追加して実行すると、selenium 側の link3.click 操作時に、アプリ側の link4 のイベントが発生しています。(???)


よろしくお願いします。

Reply all
Reply to author
Forward
0 new messages