如何使用Xpath获取CSS颜色值?

时间:2014-11-22 11:18:05

标签: java selenium selenium-webdriver

以下是我试过的这个脚本。

  1. 如何使用此XPath识别元素并获取CSS颜色值?
  2. 这个Xpath是什么意思?

    package mypackage;    
    import org.openqa.selenium.*;
    import org.openqa.selenium.firefox.FirefoxDriver;    
    import org.openqa.selenium.interactions.Action;
    import org.openqa.selenium.interactions.Actions;
    
    public class myclass {
    
            public static void main(String[] args) {
            String baseUrl = "http://newtours.demoaut.com/";
            WebDriver driver = new FirefoxDriver();
    
            driver.get(baseUrl);
            WebElement link_Home = driver.findElement(By.linkText("Home"));
            WebElement td_Home = driver
            .findElement(By
            .xpath("//html/body/div"
            + "/table/tbody/tr/td"
            + "/table/tbody/tr/td"
            + "/table/tbody/tr/td"
            + "/table/tbody/tr"));
    
            Actions builder = new Actions(driver);
            Action mouseOverHome = builder
            .moveToElement(link_Home)
            .build();
    
            String bgColor = td_Home.getCssValue("background-color");
            System.out.println("Before hover: " + bgColor);
            mouseOverHome.perform();
            bgColor = td_Home.getCssValue("background-color");
            System.out.println("After hover: " + bgColor);
            driver.quit();
        }
    }
    

2 个答案:

答案 0 :(得分:1)

要使用Xpath获取CSS颜色值,您可以使用以下代码:

String color = driver.findElement(By.xpath("//xpath")).getCssValue("color");

它将返回" RGBA"格式为:" rgba(255,255,255,1)"。

答案 1 :(得分:0)

首先,这当然不是写xpath的有效方式。我测试了你的xpath,它返回了9个不同的匹配。要查找特定元素的css颜色值,您的xpath或任何其他选择器需要非常具体。在那之后getCssValue并使用任何有效的属性名称,例如color, background-color,这样会返回您想要的值。除了选择器,你的代码看起来很好。此外,如果要查找xpath重新调整的所有元素的css值,您可能需要循环并打印每个元素的值。 enter image description here