2015-04-06 107 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

相关问题