如何提取页面源的Script标记内的String

时间:2014-07-24 12:31:11

标签: java selenium-webdriver webdriver

我有一个网页,例如www.educaxx.com。检查pagesource后,我可以看到编写了一个脚本。该脚本在页面的head标签内写入。

        <script type="text/javascript">
          if ( /\.eduxx\.com/g.test( document.domain ) ) {
          var _gaq = _gaq || [];
          _gaq.push(['_setDomainName', 'eduxx.com']);
          _gaq.push(['_setAccount', 'UA-48621467-1']);
          _gaq.push(['_trackPageview']);    
          _gaq.push(['jiveTracker._setAccount', 'UA-1066095-1']);
          _gaq.push(['jiveTracker._trackPageview']);
       }
      </script>

我想找到字符串&#34; _gaq&#34;来自此网页使用selenium webdriver?我怎样才能使JavascriptExecutor成为可能?

2 个答案:

答案 0 :(得分:1)

获取页面源并将其存储在一个字符串中,然后您可以使用下面的代码,可能是自我描述性的,

    ArrayList<String> value_to_get= new ArrayList<String>();
    String  regex= "(\\W|^)_gaq(\\W|$)";
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher(page_source);

        while(m.find()) {

            if(!value_to_get.contains(m.group())){
            value_to_get.add(m.group())     
        }
       }

答案 1 :(得分:0)

它也可以在java中完成: -

     String page_source =  wd.getPageSource();
     String  check_value= "_gaq";
     if ( page_source.contains(check_value))
     {
         System.out.println(" event is fired on URL :- "+wd.getCurrentUrl());
     }
     else{
         System.out.println(" event is not fired on URL :- "+wd.getCurrentUrl());
     }

但是如何使用selenium webdriver在JavascriptExecutor中完成?