在源页面<script>行查找

时间:2017-11-30 12:29:49

标签: java selenium-webdriver

有人可以帮我解决以下问题:

&#xA;&#xA;

我必须测试页面的源代码是否包含以下行:

&#xA;&# xA;
 &lt; script&gt; dataLayer.push({'login':'未登录','site-language':'es','article-type':'2','section1' :'错误页','section2':'错误页&gt;访问被拒绝'});&lt; / script&gt;&#xA;  
&#xA;&#xA;

实际上我正在寻找拒绝访问错误页面>拒绝访问(如果该页面上存在),并在找到页面来源时卡住

&#xA;&#xA;
  driver.navigate()。to(BaseTest.config(“url”)+“/ es / pronosticos”);&#xA; String link = driver.getPageSource();&#xA;  
&#xA;&#xA;

下一步是检查当前页面上是否存在以上行?&# xA;提前谢谢

&#xA;

1 个答案:

答案 0 :(得分:1)

您要做的是基本String操纵。

您可以在matches()上执行contains()String方法等操作。

示例:

driver.navigate().to(BaseTest.config("url") + "/es/pronosticos");
String link = driver.getPageSource();
String script = "<script>dataLayer.push({'login':'not logged in','site-language':'es','article-type':'2','section1':'error page','section2':'error page > access denied'});</script>";

if (link.contains(script)) System.out.println("Site contains script");
else System.out.println("Site does NOT contain script");

另一种方法是尝试查找<script&gt;元素通过WebDriver

try {
    WebElement script = driver.findElement(By.tagName("script"));
    String scriptText = script.getText(); //returns the text of <script> tag
    if (scriptText.contains("access denied")) System.out.println("Access Denied!");
    else System.out.println("Access granted");
} catch (NoSuchElementException e) {
    System.out.println("Script does NOT exist!");
}