首页 > 解决方案 > 在 selenium 中,我可以在鼠标悬停操作后执行 getCSSValue("color")

问题描述

有一种情况,我将鼠标悬停在元素上,然后开始显示一条垂直线,并且我想getCSSValue在悬停后显示该元素。

通常不直接通过使用悬停xpath.getCSSValue("color");给我颜色,但我想要的是首先悬停在该元素上,然后它将开始显示红色垂直线,然后获取颜色值。

我知道/尝试过getCSSValue("color")动作类方法,但动作类不允许这样做。

public By hoverOnAccount = By.xpath("myxpath"); 
WebElement abcd = driver.findElement(hoverOnAccount);
String abc = abcd.getCssValue("color");

任何人都可以建议吗?

标签: javaselenium

解决方案


这应该可以,还请添加您尝试过的操作方法。

WebElement hoverElement = driver.findElement(yourElementSelector);
Actions action = new Actions(driver);
action.moveToElement(hoverElement).build().perform();

hoverElement.getCSSValue("color");

如果那个不起作用,您可以尝试使用以下操作JavaScript Executor

String javaScript = "var evObj = document.createEvent('MouseEvents');" +
                    "evObj.initMouseEvent(\"mouseover\",true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);" +
                    "arguments[0].dispatchEvent(evObj);";


((JavascriptExecutor)driver).executeScript(javaScript, hoverElement);

推荐阅读