【问题标题】:Select a word match & Highlight the word from the entire HTML body选择一个单词匹配并突出显示整个 HTML 正文中的单词
【发布时间】:2017-06-23 09:26:19
【问题描述】:

我正在尝试自动化一个场景,因为我需要在整个页面中找到一个单词的出现,然后在所有匹配项上突出显示。

我尝试了以下代码,但似乎无法正常工作:

 WebElement findelement=driver.findElement(By.tagName("body"));
 String findelement_text= findelement.getText();

 int count = 0;
 while ( findelement_text.contains("testing")){

                    count++;

                    findelement_text= findelement_text.substring(findelement_text.indexOf(keyword1) + keyword1.length());
            }

   JavascriptExecutor js = (JavascriptExecutor) driver;
 js.executeScript("arguments[0].style.border='2px groove green'",findelement_textcontains("testing"));

【问题讨论】:

  • 这里有什么想法吗?
  • 你试过mark.js吗?

标签: javascript java selenium selenium-webdriver automation


【解决方案1】:

试试下面的代码,如果它不是你想要的,请告诉我:

List<WebElement> allOptions = driver.findElements(By.xpath("//*[contains(text(), 'testing')]"));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("for (var i = 0; i < arguments[0].length; i++) { arguments[0][i].style.border='2px groove green'; }", allOptions);

【讨论】:

  • 感谢您的回复...您添加的脚本 sn-p 获取包含文本“testing”的整个文本或段落,我只想从整个页面而不是其他句子或段落,然后突出显示所有那些名为“测试”的词......希望我在解释中很清楚。
  • 哦...那会更复杂JavaScript,因为您需要用单独的网络元素替换目标词,例如&lt;p&gt;This is testing of web application&lt;/p&gt; => &lt;p&gt;This is &lt;span class="highlight"&gt;testing&lt;/span&gt; of web application&lt;/p&gt; 然后将样式应用到所有 span 元素与 class="highlight"... 我会尝试获得相同的解决方案,但我不是 JavaScript 编码器...
  • 谢谢,我也一样,我不太喜欢 Javascript 编码……。通过 Java 和 selenium,我尝试了很多在这里不起作用的东西。
猜你喜欢
  • 1970-01-01
  • 2016-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多