如何使用 Selenium 检查页面上的文本是否突出显示?
How to check if a text is highlighted on the page using Selenium?
1> 突出显示的文本是什么意思?
假设您使用鼠标或其他方式浏览任何页面,select 该页面上的任何文本。假设 "" , "Sign Up " 文本被突出显示。理解有误请指正
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 class 发送 Ctrl+A ,虽然它 select 整个页面,但它应该输出一些不同的值。在那种情况下,它也只给出上面输出的文本颜色。
如果我做对了或者我对突出显示的文本的理解是否正确,请告诉我。
带有 selected 文本的元素的 CSS 样式在您 select 在浏览器中输入文本后不会改变。您可以做的是获取 current "active" element 并查看它是否是所需的:
WebElement desiredElement = driver.findElement(By.xpath("//*[@id='pageFooter']/div[3]/div/span"));
WebElement activeElement = driver.switchTo().activeElement();
你不能单独使用 Selenium,但你可以使用 Selenium 执行 javascript。 Js很简单:
window.getSelection().toString();
所以只是:
((JavascriptExecutor)driver).executeScript("return window.getSelection().toString();");
PS 将无法在 <=IE8 中工作(如果您需要,将提供方法)
1> 突出显示的文本是什么意思?
假设您使用鼠标或其他方式浏览任何页面,select 该页面上的任何文本。假设 "
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 class 发送 Ctrl+A ,虽然它 select 整个页面,但它应该输出一些不同的值。在那种情况下,它也只给出上面输出的文本颜色。
如果我做对了或者我对突出显示的文本的理解是否正确,请告诉我。
带有 selected 文本的元素的 CSS 样式在您 select 在浏览器中输入文本后不会改变。您可以做的是获取 current "active" element 并查看它是否是所需的:
WebElement desiredElement = driver.findElement(By.xpath("//*[@id='pageFooter']/div[3]/div/span"));
WebElement activeElement = driver.switchTo().activeElement();
你不能单独使用 Selenium,但你可以使用 Selenium 执行 javascript。 Js很简单:
window.getSelection().toString();
所以只是:
((JavascriptExecutor)driver).executeScript("return window.getSelection().toString();");
PS 将无法在 <=IE8 中工作(如果您需要,将提供方法)