2015-05-25 116 views
-2

在我的項目中,需要檢查網頁元素的顏色,即紅色,綠色,粉紅色等,但使用getCssValue()方法獲得十六進制格式的rgb值。請幫助我實現它。謝謝。如何獲取selenium webdriver中web元素的顏色名稱?

+0

當然,您將使用getCssValue()獲取RGB或顏色代碼,如#D1DBDF。我沒有看到任何方法在硒中獲得顏色名稱。 –

+0

您可以嘗試從外部網站(如[this](http://name-of-color.com/)網站)獲取顏色名稱,運行一個小腳本在網站上搜索十六進制並刮掉顏色名稱。 – LittlePanda

+1

嗨,歡迎來到Stack Overflow。爲了幫助您,我們需要查看您嘗試過的代碼。這樣我們可以告訴你如何改變它來做你想做的事。這裏有一個關於如何在Stack Overflow上提出問題的指導,你將得到你需要的東西:http://stackoverflow.com/help/how-to-ask –

回答

-1

Swetha,

你總是會得到與getCssValue(顏色代碼),如果你想要的顏色的名稱,你可以寫一個簡單的代碼轉換。像我是闖民宅一個網站這一點,試試這個代碼 -

string GetColorName(Color color) 
{ 
var colorProperties = typeof(Color) 
    .GetProperties(BindingFlags.Public | BindingFlags.Static) 
    .Where(p => p.PropertyType == typeof(Color)); 
foreach(var colorProperty in colorProperties) 
{ 
    var colorPropertyValue = (Color)colorProperty.GetValue(null, null); 
    if(colorPropertyValue.R == color.R 
      && colorPropertyValue.G == color.G 
      && colorPropertyValue.B == color.B) { 
     return colorPropertyValue.Name; 
    } 
} 

//If unknown color, fallback to the hex value 
//(or you could return null, "Unkown" or whatever you want) 
return ColorTranslator.ToHtml(color); 
} 
1

一兩件事你可以做的是寫一個腳本,將查詢像一個網站 - http://name-of-color.com/用十六進制代碼,並解析HTML代碼和檢索顯示在網站上的顏色名稱。

因此,整體的步驟將是:

  1. 獲取的十六進制代碼(你已經擁有它)

  2. 查詢如下(你可以使用的URL,URLConnection類本網站或者你可以使用Selenium + PhantomJS OR Jsoup)

    網址:http://name-of-color.com/?hex=#F89406

  3. 刮html頁面的源d獲取網站上顯示的顏色名稱

相關問題