我正在尝试在Selenium WebDriver Firefox(Geckodriver)上模拟屏幕上的点击。
There is a script写入是否已单击(通过鼠标)或点按到屏幕。我可以通过Selenium对其进行“单击”,而不会出现任何问题。我只想“点击”它。可能吗?我该怎么办?
我正在使用最新版本的Geckodriver和Firefox。我的代码在下面。
var touchActions = new OpenQA.Selenium.Interactions.TouchActions(driver);
string url = "https://jsfiddle.net/bkwb0qen/15/embedded/result/";
driver.Navigate().GoToUrl(url);
driver.SwitchTo().Frame(0);
IWebElement element = driver.FindElement(By.Id("square"));
touchActions.SingleTap(element).Build().Perform();
对于C#,我使用以下代码来处理点击:
private static void Tap(this IPerformsTouchActions driver, int x, int y)
{
new TouchAction(driver).Tap(x, y).Perform();
}
您可以这样称呼它,相对于元素的x / y坐标:
driver.Tap(element.Location.X, element.Location.Y);
TouchActions
为我抛出一个错误,抱怨我需要将IWebDriver
强制转换为IPerformsTouchActions
,这似乎是IWebDriver
的子类型,因此这就是driver
的方法参数为IPerformsTouchActions
。为了明确起见,您可以针对常规IWebDriver
对象调用它。