我正在将 C# 与 Selenium 2.0 / Webdriver 一起使用,并且我正在尝试模拟双击打开新浏览器窗口的表格行。
我有两个问题:
在找到具有唯一类名的表行后(即使用
findelement(By.classname("...")))
单击方法(或选择/提交)不执行任何操作并抱怨无法对相关元素执行此类操作。如何在 Selenium 2.0/Webdriver 中执行双击?
我正在将 C# 与 Selenium 2.0 / Webdriver 一起使用,并且我正在尝试模拟双击打开新浏览器窗口的表格行。
我有两个问题:
在找到具有唯一类名的表行后(即使用findelement(By.classname("...")))
单击方法(或选择/提交)不执行任何操作并抱怨无法对相关元素执行此类操作。
如何在 Selenium 2.0/Webdriver 中执行双击?
您应该单击表格单元格 ( <td>
) 元素
WebDriver 中还没有实现双击。有关状态,请参见问题 #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
是您要在其上执行脚本的 Web 元素。
对于双击,您可以执行以下操作:
from selenium.webdriver import ActionChains
action_chains = ActionChains(driver)
action_chians.double_click(on_element).perform()
*where, on_element = 要双击的元素*
我使用python做到了这一点。它奏效了:)