在我的一个Selenium测试用例中,我遇到了一个问题,即我不想拥有MouseOver效果。这就是我的工作:
问题是,在“登录”和“购买”之间的中间有一个带有MouseOver效果的“购物篮”链接。因此,当我在“登录”按钮上调用Click()然后在“购买”按钮上调用时,我会触发MouseOver,它会打开购物车的小预览,隐藏“买”按钮。
适用于Firefox和MSIE。在Chrome中,我没有这种效果。
任何人都知道吗?
答案 0 :(得分:0)
安德鲁是对的。如果没有手动发生,那么它也不应该在这里发生。
您也可以尝试点击JavascriptExecutor
WebElement element= driver.findElement(By.xpath("Your Xpath"));
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", element);
下面是一些使用C#
进行操作的示例Execute JavaScript using Selenium WebDriver in C#
希望它会对你有所帮助:)。
答案 1 :(得分:0)
我仍然不知道真正的解决方案,但这是我正在使用的肮脏的解决方法:
public static void Click(this IWebElement element, TestTarget target)
{
if (target.IsInternetExplorer)
{
var actions = new Actions(target.Driver);
actions.MoveToElement(element).Perform();
Thread.Sleep(500); // wait for the mouseover popup to appear
element.SendKeys(Keys.Escape); // to close the popup (if any)
actions.MoveToElement(element).DoubleClick().Perform(); // simple click is sometimes not enough in IE
}
else
{
element.Click();
}
}