2016-11-15 23 views
1

我期待将所有链接存储在网页中作为json数据,然后使用jasmine js检查它们的有效性。但到目前为止,我还没有运气,因为我找不到办法。将网页中的所有链接存储为json数据使用jasmine js

describe('savejson', function() 
    { 
    var map = new Map(); 
    it('save', function(myarg) 
    { 
     browser.ignoreSynchronization = true; 
     browser.driver.get("https://www.google.co.in"); 
     browser.driver.findElement(by.xpath("//input[@type='text']")).sendKeys("java"); 
     browser.driver.findElement(by.xpath("//button[@name='btnG']")).click(); 
     map = browser.driver.findElement(by.xpath("//a[@href]")); 
     console.log(map); 
    }); 
    }); 

有没有什么办法将它存储在地图或任何其他集合?

回答

2

您可以将所有链接存储在数组中,并根据需要使用结果。看下面的例子。

describe('savejson', function() 
{ 
    var urlList=[]; 
    it('save', function(myarg) 
    { 
     browser.ignoreSynchronization = true; 
     browser.driver.get("https://www.google.co.in"); 
     browser.driver.findElement(by.xpath("//input[@type='text']")).sendKeys("java"); 
     browser.driver.findElement(by.xpath("//button[@name='btnG']")).click(); 
     urlList = browser.driver.findElements(by.xpath("//a[@href]")); 
    }); 

    it('Should validate stored links',function(){ 
     urlList.each(function(linkElement,index){ 
       linkElement.click(); 
       browser.sleep(1000); 
       expect(browser.driver.getCurrentUrl()).toContain('some URL'); // do whatever you need to assert 
       browser.navigate().back(); 
       browser.sleep(1000); 
     }) 
    }) 
}); 
+0

我尝试使用forEach,地图,每个但似乎没有工作。 – wolfsbane

+0

更新了我的答案! –

+0

从行'urlList = browser.driver.findElement(by.xpath(“// a [@href]”))'remove' getAttribute()'' –

0

我觉得下面的解决方案应该为你工作。

describe('savejson', function() { 
it('save', function() { 
    browser.driver.get("https://www.google.co.in"); 
    browser.driver.findElement(by.xpath("//input[@type='text']")).sendKeys("java"); 
    browser.driver.findElement(by.xpath("//button[@name='btnG']")).click(); 
    var linksList = []; 

    linksList = browser.driver.findElements(by.tagName("a")); 

    var testDataLInks = ["www.www.com", "sss.sss.sss"]; 

    linksList.each(function(link) { 
     link.getAttribute('href').then(function(hyperlink) { 
      console.log(hyperlink); 
      expect(testDataLInks).toContain(hyperlink); 
     }); 
    }); 
}); 

});

1)首先识别标签'a'的elemetns,并将它们放入列表中。

2)通过使用getAttribute('href')获取每个元素的超链接。

3)使用您拥有的测试数据列表来断言超链接。

相关问题