

**概要**

・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 アプリにしました。

[code]

    <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>
    
[/code]

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

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

[code]

    ...
    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
    ...
    
[/code]

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

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

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

よろしくお願いします。


CC BY-SA 3.0
2015-12-15T04:43:05.300
19999
2020-07-28T08:05:00.530
2015-12-18T08:19:05.800
13677
13677
question
electron selenium-webdriver
electron アプリを selenium から操作すると、クリック動作しない場合があります


これは、私の環境では同じ事象を起こすことができず、Electronでも想定通りの動作をさせることしかできませんでした。  
ElectronやWebDriver以外のところ、例えば次のような部分を追ってみると良いかもしれません。

  * WebDriver側のchromeOption.binaryの指定が古いビルドのElectronアプリであるなど、テストとテスト対象が合致していない
  * Node.jsのバージョンが古い
  * developer consoleが表示されていて処理コンテキストが変わってしまっている

* * *

  * MacBook Pro / OS X Yosemite (10.10.5)
  * jQuery 
    * 1.11.3
  * Node.js 
    * 5.3.0
  * Selenium 
    * 2.48.2

ElectronとChromeDriverは次の組み合わせの両方とも動きました。

  * Electron 0.33.1 + ChromeDriver 2.15
  * Electron 0.36.1 + ChromeDriver 2.20


CC BY-SA 3.0
2015-12-19T08:09:11.300
20172
2016-02-20T04:43:13.647
2016-02-20T04:43:13.647
8000
13695
19999
answer