首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过JAVA使用MARK.JS (或任何插件)来突出显示网页中指定单词的所有实例

如何通过JAVA使用MARK.JS (或任何插件)来突出显示网页中指定单词的所有实例
EN

Stack Overflow用户
提问于 2016-08-15 15:48:56
回答 1查看 137关注 0票数 0

我想写一个自动测试,以检查在网页中的拼写使用web服务的API和突出显示的词被检测为不正确的以下打印筛选文件作为错误报告证明。

搜索网页,我了解到突出显示一个单独单词的唯一方法是通过JavaScriptExecutor使用JavaScriptExecutor。

我发现了如何高亮显示包含不正确单词的web元素,但无法执行单独的单词高亮。

因此,在收集了一些信息之后,我做了下一步工作:

  • 上传到github上的mark.js插件
  • 将外部.js放入DOM中
  • 用word设置字符串
  • 在页面的html主体上称为mark.js: addscript=window.document.createElement('script');addscript.type='text/javascript';addscript.src='http://github.com/my3tahk/codekeep/blob/master/mark.min.js';document.getElementsByTagName('body')[0].appendChild(addscript);");驱动=新FirefoxDriver();driver.manage().window().maximize();driver.get(“http://stackoverflow.com/questions/16251505/how-to-highlight-all-text-occurrences-in-a-html-page-with-javascript"”);((JavascriptExecutor)驱动程序) .executeScript("var FirefoxDriver(JavascriptExecutor)驱动程序).executeScript“(”返回typeof(somefunc)").toString().equals("function");字符串word =“text”);((JavascriptExecutor)驱动程序) .executeScript("var instance = new JavascriptExecutor word +“,{‘JavascriptExecutor’:'span','className':‘突出显示’});”;

控制台返回:

Exception in thread "main" org.openqa.selenium.WebDriverException: Mark is not defined

我的问题:在本例中如何正确使用mark.js (或其他建议的插件)。

记者:由于我是新手,请给出详细的描述和完整的解释。

EN

回答 1

Stack Overflow用户

发布于 2016-08-16 09:53:51

  1. 我使用了cdn.jsdelivr.net,而不是发布在github上的.js。(thx转@dude)
  2. 必须使用document.querySelec‌​torAll('body')而不是document.querySelec‌​tor('body.context')

结果工作代码

代码语言:javascript
复制
WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();

driver.get("http://stackoverflow.com/questions/16251505/how-to-highlight-all-text-occurrences-in-a-html-page-with-javascript");

((JavascriptExecutor) driver)
  .executeScript("var addscript=window.document.createElement('script');addscript.type='text/javascript';addscript.src='https://cdn.jsdelivr.net/mark.js/7.0.2/mark.min.js';document.getElementsByTagName('body')[0].appendChild(addscript);");

((JavascriptExecutor) driver)
 .executeScript("return typeof(somefunc)").toString().equals("function");

String word = "text";

        ((JavascriptExecutor) driver)
        .executeScript("var instance = new Mark(document.querySelectorAll('body'));instance.mark('"+ word +"', {'element': 'span','className': 'highlight'});");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38958408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档