2

ページにキャンバス要素があり、その一部をクリックしたいと思います。これを行うには ActionBuilder を使用する必要があることを知っているので、次のコードを試しました。

element = driver.find_element(:xpath, canvas_xpath)
action.move_to(element, 100, 100).click.perform

ただし、このコードはキャンバス要素の中央をクリックするだけで、マウスをまったく動かしません。

マウスを座標に移動する他の方法はありますか? (AutoITスクリプトについては言及しないでください-私はLinuxで開発しています)

4

3 に答える 3

6

IEでも同じ問題があります。ShockwaveNNのコードは、FirefoxとChromeで機能します。問題は、要素の中央で「クリック」クリックすることだと思います。以下は、action_builder.rbのドキュメントです。

  #
  # Clicks in the middle of the given element. Equivalent to:
  #
  #   driver.action.move_to(element).click
  #
  # When no element is passed, the current mouse position will be clicked.
  #
  # @example Clicking on an element
  #
  #    el = driver.find_element(:id, "some_id")
  #    driver.action.click(el).perform
  #
  # @example Clicking at the current mouse position
  #
  #    driver.action.click.perform
  #
  # @param [Selenium::WebDriver::Element] element An optional element to click.
  # @return [ActionBuilder] A self reference.
  #

これと私の結論によると、これらのアクションを次のように2行で実行する必要があります。

element = driver.find_element(:xpath, canvas_xpath)
driver.action.move_to(element, 100, 100).perform
driver.action.click.perform

また

element = driver.find_element(:xpath, canvas_xpath)
driver.action.move_to(element).perform
driver.action.move_by(100, 100).click.perform

悲しいことに、これはどれも機能しません(IEの私にとって):(

于 2012-11-28T13:44:36.713 に答える
1

試しましたaction.move_to(element).move_by(100, 100).click.performか?

于 2012-04-15T20:17:37.237 に答える
0

クリックはターゲット要素の中心で発生します (コメント 3 および 5 http://code.google.com/p/selenium/issues/detail?id=3578を参照) 。

コマンド: http://selenium.googlecode.com/svn/trunk/rb/lib/selenium/webdriver/remote/commands.rb ActionBuilder: http://selenium.googlecode.com/svn/trunk/rb/lib/selenium /webdriver/common/action_builder.rb

于 2012-12-06T00:39:20.893 に答える