我们如何使用 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))
因此,如果你们中的任何人能够在这方面指导我,我将不胜感激。我已经被困在这个问题好几天了.. 看看这个截图,这就是我想要的。 提前致谢。
最佳答案
您可以简单地通过 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);");
关于java - 如何使用 Selenium 选择网页中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43467151/