我们如何使用Selenium在网页中选择文字?我正在尝试使用selenium webdriver测试一个Web应用程序。
我在一个类文件中定义了单独的方法,例如,1)打开浏览器2)选择下拉值3)切换到新窗口等,将调用我需要创建一个方法的方法选择文字。
我想知道如何实现它,而不是使用以下代码段, 我的代码在这里:
Actions act_higlight = new Actions(driver);
act_higlight.moveToElement(element, 2, 15)
.clickAndHold()
.moveByOffset(30, 0)
.release()
.perform();
因为有时候我的文字会在5行之间变成两行,所以一旦声明了,我就不会触摸我的方法了。我不能经常去改变它(.moveByOffset(30,5))
所以,如果你们中的任何人能指导我,我将不胜感激。我已经被困在这里好几天了.. 看看这个截图,这就是我想要的。 在此先感谢。
答案 0 :(得分:3)
您只需按CSS
选择器h1.tiptitle
查找标题,然后使用getText()
方法获取所需文字:
String title = driver.findElement(By.cssSelector('h1.tiptitle')).getText();
如果您只想突出显示文字(例如,制作屏幕截图),您可以应用JavaScript
来更改元素'style
:
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("document.querySelector('h1.tiptitle').style.background='blue';");
jse.executeScript("document.querySelector('h1.tiptitle').style.color='white';");
<强>更新强>
尝试下面的代码,让我知道结果
jse.executeScript("function selectElementContents(el) {
var range = document.createRange();
range.selectNodeContents(el);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
}
var el = document.querySelector('h1.tiptitle');
selectElementContents(el);");