如何使用selenium webdriver悬停鼠标时打印菜单项的背景颜色

时间:2014-01-03 06:46:16

标签: selenium selenium-webdriver

我正在自动化网页。我必须检查鼠标悬停功能是否正常。 当鼠标指向特定项目时,我必须打印背景颜色。我已编写代码,但它没有抛出正确的输出。

public class Selenium_Demos extends Environment_Setup {

    @Test
    public void test() throws Exception {

            Rapidaction();

    }


    private void Rapidaction() throws Exception
    {
        driver2.get("http://www.rapidvaluesolutions.com/");

        Actions builder = new Actions(driver2);

//点击“PRODUCT”链接

        WebElement td_Home = driver2.findElement(By.xpath("//html/body/section[1]/header/nav/ul/li[1]/a"));

        String bgColor = td_Home.getCssValue("background-color");
        System.out.println("Before hover: " + bgColor);

        builder.moveToElement(td_Home).build().perform();

        bgColor = td_Home.getCssValue("background-color");

        System.out.println("After hover: " + bgColor);

        driver2.quit();


    }


}

当我们将鼠标指向链接“产品”时,应该打印链接的颜色 - 蓝色。

4 个答案:

答案 0 :(得分:0)

从评论转到帖子,因为我想发布一些代码。

请你改变下面的行

 WebElement td_Home = driver2.findElement(By.xpath("//html/body/section[1]/header/nav/ul/li[1]/a"));

List<WebElement> td_Home = driver2.findElements(By.xpath("//html/body/section[1]/header/nav/ul/li[1]/a"));

然后检查td_Home的长度,即打印“td_Home.size()

如果长度大于1,则必须调试是否将大小设置为1,然后检查元素的某些属性以确保选择了正确的元素。

请试一试。

<强>更新

现在请做

String bgColor = td_Home.get(0).getCssValue(“background-color”);

答案 1 :(得分:0)

我为您创建了一个简单的示例:将此html复制到某个位置并保存为.html

<html>
<body>
<div id="mydiv" style="width:200px;background:white"  onmouseover="this.style.background='gray';"  onmouseout="this.style.background='white';">
    on mouse over color change.
    </div>
</body>
</html>

     **web driver code:**
     driver.get("file:///C:/Users/vkiran/Desktop/color1.html");

     WebElement element = driver.findElement(By.xpath("//*[@id='mydiv']"));

     Actions builder = new Actions(driver);

     Action mouseOver = builder.moveToElement(element).build();

     String bgColor = element.getCssValue("background-color");

     System.out.println("Before hover: " + bgColor);        

     mouseOver.perform();        

     bgColor = element.getCssValue("background-color");

     System.out.println("After hover: " + bgColor);

答案 2 :(得分:0)

识别webelement,然后借助getAttribute()方法找到颜色

System.out.println("Hexadecimal color : "+driver.findElement(By.xpath("write the proper xpath")).getAttribute("bgcolor"));

这将为颜色提供十六进制表示法

答案 3 :(得分:0)

    Actions actions = new Actions(driver);
    WebElement element = driver.findElement(mycopieslink_locator);
    JavascriptExecutor js = (JavascriptExecutor) driver;
    js.executeScript("arguments[0].setAttribute('style', 'background: yellow; border: 3px solid red;');", element);
    actions.moveToElement(element);
    actions.click().build().perform();