Selenium 2 / Webdriver - как дважды щелкнуть строку таблицы (откроется новое окно) - PullRequest
2 голосов
/ 21 октября 2010

Я использую C # с Selenium 2.0 / Webdriver и пытаюсь смоделировать двойной щелчок по строке таблицы, которая открывает новое окно браузера.

У меня две проблемы:

  1. После нахождения строки таблицы с уникальным именем класса (т. Е. С использованием findelement(By.classname("..."))) применение метода click (или select / submit) не выполняет никаких действий и жалуется на невозможность выполнить подобное действие на рассматриваемый элемент.

  2. Как выполнить двойной щелчок в Selenium 2.0 / Webdriver?

Ответы [ 2 ]

7 голосов
/ 21 октября 2010
  1. Необходимо щелкнуть элемент ячейки таблицы (<td>)

  2. Двойной щелчок еще не реализован в WebDriver.См. Issue # 244 для статуса.Также комментарии к этой проблеме содержат JavaScript, который можно использовать для двойного щелчка в Firefox.

Для IE вам потребуется выполнить следующее:

(IJavaScriptExecutor)driver).executeScript("arguments[0].fireEvent('ondblclick');", cell);

Для Firefox и Chrome:

(IJavaScriptExecutor)driver).executeScript("var evt = document.createEvent('MouseEvents');" +
        "evt.initMouseEvent('dblclick',true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0,null);" +
        "arguments[0].dispatchEvent(evt);", cell);

, где cell - это веб-элемент, для которого вы хотите выполнить скрипт.

4 голосов
/ 02 апреля 2012

Для двойного щелчка вы можете выполнить следующее:

from selenium.webdriver import ActionChains

action_chains = ActionChains(driver)
action_chians.double_click(on_element).perform()

* где, on_element = элемент, на котором вы хотите дважды щелкнуть *

Я сделал это с помощью Python. и это сработало:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...