如何使用Selenium在网页中选择文本?

时间:2017-04-18 08:22:49

标签: java selenium

我们如何使用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))

所以,如果你们中的任何人能指导我,我将不胜感激。我已经被困在这里好几天了.. 看看这个截图,这就是我想要的。enter image description here 在此先感谢。

1 个答案:

答案 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);");