java - 如何使用 Selenium 选择网页中的文本?

标签 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 提前致谢。

最佳答案

您可以简单地通过 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/

相关文章:

google-chrome - browserConnectionEnabled 功能是什么意思?

Java 观察者/可观察者

java - 清除 NetBeans 中的输出窗口

c# - Selenium 错误 : No response from server for url http://localhost:7055

javascript - Selenium,如何按ENTER键,没有元素

java - 我正在尝试执行下面的 if else 条件,但 else 部分未执行 'if' 条件不满足

java - OSGi 包和普通 .JAR 文件用法之间的区别

java - 了解时间戳中的亚秒值

java - 使用 Https 协议(protocol)从 Flickr 下载数据

Java : For String values we use the command sendKeys ("String"); Similarly what is the command for posting a numeric data to the numeric field