1>高亮文字意味着什么? 假设您浏览任何页面,使用鼠标或其他方法选择该页面上的任何文本。让我们说" " ,"注册"文本突出显示。如果错误,请纠正我的理解。
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,虽然它选择了整个页面,但它应该输出一些不同的值。在这种情况下,它也只给出了上面输出的文字颜色。
如果我做得对,或者我对突出显示的文字的理解是正确的,请告诉我。
答案 0 :(得分:7)
你不能单独使用Selenium,但你可以用Selenium执行javascript。 Js非常简单:
window.getSelection().toString();
所以只是:
((JavascriptExecutor)driver).executeScript("return window.getSelection().toString();");
PS无法在< = IE8中运行(如果您需要,将提供如何使用)
答案 1 :(得分:3)
在浏览器中选择文本后,具有所选文本的元素的CSS样式不会更改。您可以做的是获取current "active" element并查看它是否是所需的:
WebElement desiredElement = driver.findElement(By.xpath("//*[@id='pageFooter']/div[3]/div/span"));
WebElement activeElement = driver.switchTo().activeElement();