2015-04-06 50 views
2

1>突出顯示的文字的含義是什麼? 假設您瀏覽任何頁面,請使用鼠標或其他方式選擇該頁面上的任何文本。假設說「Hello」,則「註冊」文本被突出顯示。請糾正我的理解,如果它錯了。如何檢查使用Selenium在頁面上是否突出顯示文本?

2>我試着下面的代碼來獲取CssValue的顏色和背景顏色。 使用給定的代碼:

driver.get("https://facebook.com"); 
    String textColor = driver.findElement(By.xpath("//*[@id='pageFooter']/div[3]/div/span")).getCssValue("color"); 
    String bkgColor = driver.findElement(By.xpath("//*[@id='pageFooter']/div[3]/div/span")).getCssValue("background-color"); 
    System.out.println("TextColor : " + textColor); 
    System.out.println("Background Color : " + bkgColor); 

輸出: -

TextColor : rgba(115, 115, 115, 1) 
Background Color : transparent 

* TEXTCOLOR使文本的顏色。

**爲了突出顯示我使用Robot類發送Ctrl + A,雖然它選擇整個頁面,但它應該輸出一些不同的值。在這種情況下,它也只是按照上面的輸出給出文本顏色。

請讓我知道如果我做對了,或者我對高亮文本的理解是正確的。

回答

7

您不能單獨使用Selenium做到這一點,但你可以做到這一點執行JavaScript硒。 JS很簡單:

window.getSelection().toString(); 

enter image description here

所以只是:使用

((JavascriptExecutor)driver).executeScript("return window.getSelection().toString();"); 

PS不會< = IE8工作(將提供怎樣,如果你需要)

+0

完美使用JS代碼我得到了突出顯示的文本。 – workspace

3

在選擇瀏覽器中的文本後,具有選定文本的元素的CSS樣式不會更改。你可以做的是讓current "active" element,看看它是否是所需的一種:

WebElement desiredElement = driver.findElement(By.xpath("//*[@id='pageFooter']/div[3]/div/span")); 
WebElement activeElement = driver.switchTo().activeElement(); 
+0

activeElement()函數我也在顏色代碼中做出了一些區別。似乎這也是檢查高亮文本的好選擇。 – workspace

相關問題